I’m getting an error when trying to use foreach on 3rd array
'{ "prefix": "_country-", "countries": [ { "code": "al", "name": "Albania", "cities": { "prefix": "_city-", "options": [ { "code": "durres" }, { "code": "tirana" } ] } }, { "code": "dz", "name": "Algeria", "cities": { "prefix": "_city-", "options": [ { "code": "algiers" }, { "code": "oran" } ] } } ] }
My goal is to get those data above and expect it to loop until its last data using this code:
`foreach($countryarr1['countries'] as $countkey1 => $countname1){ ?> <br><br> <?php foreach($countname1['cities'] as $cntrykey2 => $cntrys){ foreach($cntrys['options'] as $optionskey1 => $optionsarr1){ var_dump($optionsarr1); } } }`
It returns this error
'Fatal error: Uncaught TypeError: Cannot access offset of type string on string in C:xampphtdocshomepagecountries.php:25 Stack trace: #0 {main} thrown in C:xampphtdocshomepagecountries.php on line 25'
Here is the line 25
Am I missing something? By the way I’m working on a proxy dashboard for a website.
Here’s proof that when I only had 2 arrays it had no problems:
Now when I add another foreach on the 3rd array and so forth, there’s the error. Here it is.
And the error error
Advertisement
Answer
You can do that quite nicely with only 2 loops like this
$countryarr1 = json_decode($str, true); #print_r($countryarr1); foreach($countryarr1['countries'] as $countkey1 => $countname1){ ?> <br><br> <?php foreach($countname1['cities']['options'] as $optionskey1 => $optionsarr1){ var_dump($optionsarr1); } }
RESULT
array(1) { 'code' => string(6) "durres" } array(1) { 'code' => string(6) "tirana" } array(1) { 'code' => string(7) "algiers" } array(1) {'code' => string(4) "oran" }