foreach Warning: Undefined array key

<?
$data[]['open'] = 1;
$data[]['close'] = 2;
$data[]['high'] = 3;
$data[]['low'] = 4;

$data[]['open'] = 5;
$data[]['close'] = 6;
$data[]['high'] = 7;
$data[]['low'] = 8;

    foreach($data as $key => $value)
    {
        echo $value['open'];
    }
?>

Результат работы:

1

Мая

Warning: Undefined array key "open" in … on line 14

Но если написать …

foreach($data as $key => $value)
    {
        print_r($value);

        echo "<hr />";

    }

то выдает

Array ( [open] => 1 )

Array ( [close] => 2 )

Array ( [high] => 3 )

Array ( [low] => 4 )

Array ( [open] => 5 )

Array ( [close] => 6 )

Array ( [high] => 7 )

Array ( [low] => 8 )

Откуда в первом случае предупреждение и как его убрать, ну кроме директив к php


Ответы (1 шт):

Автор решения: Elton
<?
$data = []; // Инициализация массива
// Корректное добавление подмассивов с ключами
$data[] = ['open' => 1, 'close' => 2,
 'high' => 3, 'low' => 4];
$data[] = ['open' => 5, 'close' => 6, 
'high' => 7, 'low' => 8];

// Цикл для вывода значений 'open'
foreach ($data as $key => $value) {
    echo $value['open'] . "<br>"; 
// Теперь ошибок не будет
}
?>
→ Ссылка