2016-03-31 2 views
0

Я пытаюсь получить значения из массива внутри другого массива. Я видел здесь много ответов, но я не могу этого сделать. У меня есть массив как это:Доступ к массиву в php внутри другого массива

Array 
(
    [0] => Array 
     (
      [listingid] => 1234 
      [availability] => Array 
       (
        [0] => Array 
         (
          [von] => 2015-11-07 
          [bis] => 2016-03-19 
         ) 

        [1] => Array 
         (
          [von] => 2016-03-19 
          [bis] => 2016-03-28 
         ) 

        [2] => Array 
         (
          [von] => 2016-03-28 
          [bis] => 2016-07-30 
         ) 

       ) 

     ) 

    [1] => Array 
     (
      [listingid] => 5678 
      [availability] => Array 
       (
        [0] => Array 
         (
          [von] => 2015-11-07 
          [bis] => 2016-03-19 
         ) 

        [1] => Array 
         (
          [von] => 2016-03-19 
          [bis] => 2016-03-28 
         ) 

        [2] => Array 
         (
          [von] => 2016-03-28 
          [bis] => 2016-07-30 
         ) 

       ) 

     ) 
) 

и я сделать это, чтобы получить значения:

foreach($first as $key => $value){ 
    echo "Value: " . $value[$key]['availability']['von'] . "<br>"; 
} 

, которые обычно должны работать на основе ответов я видел, но это дает мне пустое значение.

Я также попытался это:

foreach($first as $key => $value){ 
    $listid = $value['listingid']; 
    echo $listid; 
} 

, и это дает мне значение listingid. Как я могу получить значения для von и bis?

Любые предложения?

+0

Посмотрите, как получить доступ к 'listingid':' $ значение [ 'listingid']; 'и как получить доступ к' availability': '$ значение [$ ключ] [ 'доступность'] [ 'фон']' , А также посмотрите, в каком измерении оба этих ключа ... – Rizier123

+0

Что вы имеете в виду? – BRG

+1

Сравните '$ value ['listingid']' и '$ value [$ key] ['availability'] ['von']', поэтому вы знаете, что первый работает. Теперь также сравните, где находятся эти два ключа: 'listingid' и' availability' – Rizier123

ответ

1

Вам просто нужно запустить вложенный цикл.

foreach($first as $value){ 
    echo "Listing ID:".$value['listingid']; 
    echo "<br/>"; 
    foreach($value['availability'] as $availability) { 
     echo "Value: " . $availability['von'] . "<br>"; 
    } 
} 
+0

большое спасибо ... Я пытался это сделать: 'foreach ($ first as $ key => $ value) { \t // $ listid = $ value ['listingid']; \t foreach ($ first ['availability'] as $ availability) { \t \t echo "Value:". $ availability ['von']. "
"; \t} } 'но это давало мне ошибки ..... – BRG

+0

Это потому, что вы использовали $ first ['availability']. Вместо этого следует использовать $ value ['availability']. :) –

Смежные вопросы