2012-04-14 24 views
12

das ist mein Array in PHP Hotels $PHP mehrdimensionales Array Werte erhalten

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

wie kann ich bekommen board_id und Preis ich habe einige foreach-Schleifen tryed aber kann nicht das Ergebnis

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

Dieser Code funktionierte nicht

Antwort

24

Dies ist die Art und Weise in diesem Array iterieren:

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

Sie wollen über die Hotels und die Zimmer (die mit numerischer Indizes) wiederholen, weil diejenigen, scheinen die „Sammlungen“ in diesem Fall zu sein. Die anderen Arrays enthalten nur und gruppieren Eigenschaften.

+0

Dies ist der Fall von Iterieren. Aber es wäre großartig, wenn Sie eine Abkürzung sagen könnten, um nur das Array $ k ['boards'] zu erhalten. Oder ich würde sagen, ich muss die Boards mit board_id = 1 bekommen. – Jithin

+0

@Jithin Wenn Sie die mit 'board_id = 1' brauchen, können Sie einfach das PHP-Handbuch, den Abschnitt [Array-Funktionen] (http : //php.net/manual/en/ref.array.php), finden Sie dort nützliche Tools, wenn Sie etwas besseres brauchen als 'foreach'. – kapa

9

Ist das gleiche, aber mit aussagekräftigeren Namen von Variablen:

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

Sie kopieren bereits angenommen Antwort –

+5

Aber mit aussagekräftigeren Variablennamen. – Julian

+4

Dies sind aussagekräftigere Variablennamen, aber das allein erfordert keine vollständig separate Antwort. Die akzeptierte Antwort verwendet die Variablennamen, die sie verwendet, weil sie von OP verwendet wurden. – mattbryanswan

Verwandte Themen