Estoy tratando de recorrer una matriz multidimensional y sigo golpeando mi cabeza contra la pared tratando de resolverlo. Básicamente, estoy tratando de imprimir todos los valores de ID.
Esto es lo que tengo hasta ahora, pero sigue dándome un error de "conversión de matriz a cadena".
foreach ($threadsarray as $key => $threads) { foreach ($threads as $anotherkey => $i) { foreach($i as $id => $threadid) echo 'key:'.$key[0]. ' AnotherKey: '.$anotherkey["threads"].' AnotherAnotherKey: '.$i["id"].' value:'.$threadid.'<br>'; } }Estoy tratando de imitar lo que esto haría, pero usando un "For Loop"
$threadsarray['threads']['0']['id']; $threadsarray['threads']['1']['id'];Y aquí está la matriz...
Array ( [threads] => Array ( [0] => Array ( [archived] => [attachment] => [business_purpose] => booking_direct_thread [id] => 178369845 [inquiry_reservation] => [last_message_at] => 2017-04-07T18:52:07Z [listing] => Array (Esta es la forma en que se puede hacer
foreach ($threadsarray['threads'] as $thread) { print $thread['id']; } for versión
$idx = count($threadsarray['threads']); for($i=0;$i<$idx;$i++){ print $threadsarray['threads'][$i]['id']; }El error que está recibiendo se debe a que está tratando de hacer eco de una matriz.
Yo haría esto:
foreach($threadsarray['threads'] as $key => $thread){ echo 'key:' . $key . ' - '; foreach($thread as $key2 => $value2){ echo 'key2:' . $key2 . ' - '; if(is_array($value2)){ foreach($value2 as $key3 => $value3){ echo 'key3:' . $key3 . ' - value3: ' . $value3; } }else{ echo 'value: ' . $value2; } } } siempre puede inspeccionar toda la estructura de la matriz haciendo print_r($threadsarray)
Mejor use una función recursiva para cualquier cantidad de 'niveles':
function printAll($a) { if (!is_array($a)) { echo $a, ' '; return; } foreach($a as $k => $value) { printAll($k); printAll($value); } } Puedes llamarlo como: printAll($threadsarray);