2016-02-24 3 views
0

Каков правильный способ захвата всех данных из массива в многомерном массиве?Правильный способ возврата данных массива в многомерный массив?

Array 
(
[0]Array 
    (
     [0] Array 
      (
       [day] 3/1/2016 
       [start1] 12:15am 
       [end1] 1:15am 
       [start2] 
       [end2] 
      ) 

     [1] Array 
      (
       [day] 3/2/2016 
       [start1] 12:00am 
       [end1] 1:00am 
       [start2] 
       [end2] 
      ) 

     [2] Array 
      (
       [day] 3/3/2016 
       [start1] 12:00am 
       [end1] 12:00am 
       [start2] 
       [end2] 
      ) 

    ) 

) 

Я хотел бы Перебери и захватить всю информацию для каждого вложенного массива, но я, кажется, работаю в неопределенную ошибку индекса.

foreach($timeArray as $day){ 
echo "Day: " + $day['day'] + "Start1: " + $day['start1'] + "End1: " + $day['end1'] + "Start2: " + $day['start2'] +"End2: " + $day['end2']; 
} 
+0

жаль я получаю мои JS и PHP перепутали в настоящее время.нужно спать lol – tai

ответ

0

Если $timeArray полный массив, то

  • $timeArray[0] является массив под ним, который имеет все дни
  • $timeArray[0][0] является первым элементом массива под ним, который является первый день
  • $timeArray[0][0]["day"] содержит значение 3/1/2016

Еще одно замечание будет то, что вы конкатенации ваши строки неправильно:

  • "Text " + $variable + " Text" = неправильно
  • "Text $variable Text" = правый
  • "Text {$variable["key"]} Text" = также право

Так для доступа каждый день:

foreach($timeArray[0] as $day){ 
    echo "Day: {$day['day']}", 
     "Start1: {$day['start1']}", 
     "End1: {$day['end1']}", 
     "Start2: {$day['start2']}", 
     "End2: {$day['end2']}"; 
} 

Ссылка:

+0

спасибо за объяснение и ссылки. определенно помог мне разобраться. – tai

0

Похоже, у вас есть массив 2 л evels, предполагая, что ваш пример является все содержимое вашего массива это будет работать

Кроме конкатенации символов в PHP является . и не +

foreach($timeArray[0] as $day){ 
    echo "Day: " . $day['day'] . 
     "Start1: " . $day['start1'] . 
     "End1: " . $day['end1'] . 
     "Start2: " . $day['start2'] . 
     "End2: " . $day['end2']; 
} 

Вы также могли бы использовать фактически строку в двойных кавычках расширится переменную как этот

foreach($timeArray[0] as $day){ 
    echo "Day: {$day['day']} Start1: {$day['start1']} End1: {$day['end1']} "; 
    echo "Start2: {$day['start2']} End2: {$day['end2']}"; 
} 

Или, если вы не экранирует имена массивов

foreach($timeArray[0] as $day){ 
    echo "Day: $day[day] Start1: $day[start1] End1: $day[end1] "; 
    echo "Start2: $day[start2]} End2: $day[end2]"; 
} 
0

вы можете читать массив этим:

foreach ($your_arr as $key_internal=>$arr_internal){ 
     foreach ($arr_internal as $key=>$value){ 
      echo $value['day']; 
      ...... 
     } 
} 
Смежные вопросы