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>';
}
1 Answer 1
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!
foreach
orwhile
orfor
in the php manual