Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

139
Vistas
bucle a través de matriz tridimensional php

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 (
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

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']; }
over 4 years ago · Santiago Trujillo Denunciar

0

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);

Referencia

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda