2012-04-14 46 views
12

đây là mảng của tôi trong khách sạn php $php mảng đa chiều có giá trị

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

làm thế nào tôi có thể nhận được board_idgiá tôi đã tryed vài vòng foreach nhưng không thể nhận được kết quả

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

mã này không hoạt động

Trả lời

24

Đây là cách để lặp trên mảng này:

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

Bạn muốn lặp trên các khách sạn và các phòng (là những người có chỉ số số), bởi vì những dường như là "bộ sưu tập" trong trường hợp này. Các mảng khác chỉ giữ và nhóm các thuộc tính.

+0

Đây là trường hợp của iterating. Nhưng nó sẽ là tuyệt vời nếu bạn có thể cho biết một cắt ngắn để có được các mảng $ k ['bảng'] chỉ. Hoặc tôi sẽ nói, tôi cần phải nhận được các bảng với board_id = 1. – Jithin

+0

@Jithin Nếu bạn cần một với 'board_id = 1', nó có thể được thực hiện, chỉ cần duyệt hướng dẫn sử dụng PHP, [Array Functions section] (http : //php.net/manual/en/ref.array.php), bạn sẽ tìm thấy các công cụ hữu ích ở đó nếu bạn cần một cái gì đó đẹp hơn 'foreach'. – kapa

9

là như nhau, nhưng với những cái tên có ý nghĩa hơn của các biến:

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

Bạn đang sao chép câu trả lời đã được chấp nhận –

+5

Nhưng với tên biến có ý nghĩa hơn. – Julian

+4

Đây là những tên biến có ý nghĩa hơn, nhưng điều đó một mình không đòi hỏi một câu trả lời hoàn toàn riêng biệt. Câu trả lời được chấp nhận sử dụng tên biến nó làm bởi vì đó là những gì OP được sử dụng. – mattbryanswan

Các vấn đề liên quan