2012-04-14 25 views
12

esta es mi matriz en PHP $ hotelesPHP matriz multidimensional obtener valores

Array 
(
    [0] => Array 
     (
     [hotel_name] => Name 
     [info] => info 
     [rooms] => Array 
      (
       [0] => Array 
        (
         [room_name] => name 
         [beds] => 2 
         [boards] => Array 
          (
           [board_id] => 1 
           [price] =>200.00 
          ) 
        ) 
       ) 
     ) 
) 

¿Cómo puedo obtener board_id y precio i tryed pocos foreach, pero no puede obtener el resultado

foreach($hotels as $row) 
    { 
     foreach($row as $k) 
     { 
      foreach($k as $l){ 
      echo $l['board_id']; 
      echo $l['price']; 
      } 
     } 
} 

este código no funcionó

Respuesta

24

Este es el camino a recorrer en esta matriz:

foreach($hotels as $row) { 
     foreach($row['rooms'] as $k) { 
      echo $k['boards']['board_id']; 
      echo $k['boards']['price']; 
     } 
} 

Usted quiere iterar sobre los hoteles y las habitaciones (las que tienen índices numéricos), porque esos parecen ser las "colecciones" en este caso. Las otras matrices solo mantienen y agrupan propiedades.

+0

Este es el caso de la iteración. Pero sería genial si puedes distinguir un atajo para obtener la matriz $ k ['boards'] solamente. O podría decir que necesito obtener las placas con board_id = 1. – Jithin

+0

@Jithin Si necesitas la que tiene 'board_id = 1', puedes hacerlo, simplemente busca el manual de PHP, la sección [Funciones de la matriz] (http : //php.net/manual/en/ref.array.php), encontrará herramientas útiles allí si necesita algo mejor que 'foreach'. – kapa

9

es el mismo, pero con nombres más significativos de variables:

foreach($hotels as $hotel) 
{ 
     foreach($hotel['rooms'] as $room) 
     { 
      echo $room['boards']['board_id']; 
      echo $room['boards']['price']; 
     } 
} 
+4

Estás copiando la respuesta ya aceptada –

+5

Pero con más nombres significativos de variables. – Julian

+4

Estos son nombres de variables más significativos, pero eso solo no requiere una respuesta completamente separada. La respuesta aceptada usa los nombres de variable que hace porque eso es lo que OP usó. – mattbryanswan

Cuestiones relacionadas