Доброго времени суток.
Суть вопроса очень просто. Есть код который делает вот так:
<?php
$arr = array();
$arr[] = array('Коля', 'Дима', 'Гоша');
$arr[] = array('Катя', 'Света', 'Яна');
for($i = 0; $i < 10; $i++){
//unset($result);
foreach ($arr as $key => $value) {
$result[$i][$key]['names'] = $value;
}
$result = json_encode($result);
print_r($result);
}
Данный код выдаст ошибку.
И есть тот же код, только перед foreach мы удаляем уде определившийся массив
<?php
$arr = array();
$arr[] = array('Коля', 'Дима', 'Гоша');
$arr[] = array('Катя', 'Света', 'Яна');
for($i = 0; $i < 10; $i++){
unset($result);
foreach ($arr as $key => $value) {
$result[$i][$key]['names'] = $value;
}
$result = json_encode($result);
print_r($result);
}
Этот - рабочий код, ошибки нету.
По сути первый и второй код абсолютно не чем не отличается, но результат - на лицо.
Помогите понять в чем суть такого поведения?
PHP 5.5.9 || 5.4.44
PHP Fatal error: Cannot use string offset as an array in /home/direx/wtf.php on line 11