Я сталкиваюсь с очень странным поведением. У меня есть массив $answer_styles
с некоторыми данными, которыми я должен манипулировать:
foreach($answer_styles as $id => &$answer_style){
$answer_style['id'] = $id;
$answer_style_names[$id] = $answer_style['name'];
}
array_multisort($answer_style_names, SORT_ASC, SORT_STRING, $answer_styles);
и затем я сохраняю его в другой переменной для дальнейшего использования: $stats['answer_styles'] = $answer_styles;
Теперь мне нужно перейти к исходному массиву, используя цикл foreach
. Я сделал это:
debug($stats['answer_styles']);
foreach($answer_styles as $answer_style){
debug($stats['answer_styles']);
...
Проблема в том, что первая отладка показывает данные, которые она должна показывать, но вторая отладка показывает последнюю запись, перезаписанную первой (так, с 1, 2, 3, 4 теперь она показывает 1, 2, 3, 1). Почему это происходит, поскольку я манипулирую не массивом $stats
, а массивом $answer_styles
?
EDIT
Это вывод для первой, соответственно, второй отладки:
app/models/test.php (line 299)
Array
(
[0] => Array
(
[name] => Alege din 3
[count] => 8
[correct] => 2
[id] => 3
)
[1] => Array
(
[name] => Alege din 4
[count] => 3
[correct] => 2
[id] => 2
)
[2] => Array
(
[name] => Alege din 6
[count] => 7
[correct] => 3
[id] => 4
)
[3] => Array
(
[name] => Scrie raspunsul
[count] => 2
[correct] => 1
[id] => 1
)
)
app/models/test.php (line 301)
Array
(
[0] => Array
(
[name] => Alege din 3
[count] => 8
[correct] => 2
[id] => 3
)
[1] => Array
(
[name] => Alege din 4
[count] => 3
[correct] => 2
[id] => 2
)
[2] => Array
(
[name] => Alege din 6
[count] => 7
[correct] => 3
[id] => 4
)
[3] => Array
(
[name] => Alege din 3
[count] => 8
[correct] => 2
[id] => 3
)
)