2012-04-14 17 views
12

to mój tablicy w php $ hoteliphp wielowymiarowa tablica uzyskać wartości

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

jak mogę dostać board_id i cenę mam tryed kilka pętla foreach, ale nie może uzyskać wynik

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

kod ten nie zadziałał

Odpowiedz

24

W ten sposób iteracyjne na tej tablicy:

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

Chcesz iteracyjne w hotelach i pokojach (te z indeksami numerycznymi), ponieważ te wydają się być „zbiory” w tej sprawie. Pozostałe macierze przechowują tylko właściwości i grupy.

+0

Jest to przypadek iteracji. Ale byłoby wspaniale, gdybyś mógł podać skrót, aby uzyskać tablicę $ k ['boards']. Albo powiedziałbym, że muszę zdobyć tablice z board_id = 1. – Jithin

+0

@Jithin Jeśli potrzebujesz tego z 'board_id = 1', to możesz to zrobić, po prostu przeglądaj podręcznik PHP, [sekcja Funkcje tablicowe] (http : //php.net/manual/en/ref.array.php), znajdziesz przydatne narzędzia, jeśli potrzebujesz czegoś ładniejszego niż 'foreach'. – kapa

9

jest taka sama, ale z bardziej znaczących nazw zmiennych:

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

Kopiujesz już zaakceptowaną odpowiedź –

+5

Ale z bardziej znaczącymi nazwami zmiennych. – Julian

+4

Są to bardziej znaczące nazwy zmiennych, ale to samo w sobie nie wymaga całkowicie oddzielnej odpowiedzi. Zaakceptowana odpowiedź używa nazw zmiennych, które robi, ponieważ właśnie tego używał OP. – mattbryanswan