egaz
Новичок
Здравствуйте.
Решил немного ускорить код программы:
вместо работы в foreach по ключу ($array[$key]),
сделал работу через ссылку на значение ($value).
Наткнулся на непонятную мне работу/ошибку PHP 5.3.8:
на выходе имею:
Первый print_r показывает структуру, всё верно
Второй print_r показывает обновлённую, поля добавлены верно.
Но идущий за ним echo в foreach выводит одинаковые значения.
Третий print_r это подтверждает, значения убились.
Такое происходит даже при пустом втором foreach, что свело меня с ума.
Кто может подтвердить/проверить, опровергнуть/разъяснить?
Спасибо.
Решил немного ускорить код программы:
вместо работы в foreach по ключу ($array[$key]),
сделал работу через ссылку на значение ($value).
Наткнулся на непонятную мне работу/ошибку PHP 5.3.8:
PHP:
<?php
$p=array();
$p[0]=array(0);
$p[1]=array(1);
print_r($p);
$i=0;
foreach($p as $key => &$value) {
echo $value[0],"\n";
$value[1]=$i++;
}
print_r($p);
foreach($p as $key => $value) {
echo $value[0],"\n";
}
print_r($p);
?>
Код:
Array (
[0] => Array (
[0] => 0
)
[1] => Array (
[0] => 1
)
)
0
1
Array (
[0] => Array (
[0] => 0
[1] => 0
)
[1] => Array (
[0] => 1
[1] => 1
)
)
0
0
Array (
[0] => Array (
[0] => 0
[1] => 0
)
[1] => Array (
[0] => 0
[1] => 0
)
)
Второй print_r показывает обновлённую, поля добавлены верно.
Но идущий за ним echo в foreach выводит одинаковые значения.
Третий print_r это подтверждает, значения убились.
Такое происходит даже при пустом втором foreach, что свело меня с ума.
Кто может подтвердить/проверить, опровергнуть/разъяснить?
Спасибо.