1

Im trying to loop through PHP arrays decoded from a json file. I get the results but it only gives me the first results of the arrays in the the file. How can I make it loop? This is my code:

foreach ($events as $event) {
 echo $event['d']['Tree1'][0]['Tree2']['Field1'] . '<br>';
 echo $event['d']['Tree1'][0]['Tree2']['Field2'] . '<br>';
 echo $event['d']['Tree1'][0]['Tree2']['Field3'] . '<br>';
}
asked Mar 22, 2018 at 15:26
5

1 Answer 1

2

Sounds like you're trying to loop through the values of a "multidimensional array". You're starting correctly by going through your array with a loop, but then you're stuck because each element in your loop is... another array. So, to echo out the values of the child array, you want to run a second loop inside of your loop. Essentially, if your loop hits a child array, you want to loop through that array too. If you know your array is made of child arrays only, you can do this like so:

<?php
foreach ($events as $event) {
 foreach($event as $ev) {
 echo $ev;
 }
}

If you need the keys, that adds a slight layer of complexity, but nothing you can't manage.

<?php
foreach ($events as $event) {
 foreach ($event as $k=>$v) {
 echo $k .': '. $v; 
 }
}

There are some examples in the php manual as well. You can also add in conditionals if you only need data from specific keys. Good luck!

answered Mar 22, 2018 at 16:27

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.