Я пытаюсь редактировать массив «на лету» внутри цикла foreach
. Я в основном анализирую каждый ключ, и если этот ключ соответствует тому, который я хочу, я хочу добавить еще одну запись в массив сразу после этого.Добавить значения в массив внутри цикла foreach
Если взять этот код,
$values = array(
'foo' => 10,
'bar' => 20,
'baz' => 30
);
foreach($values as $key => $value){
print $value . ' ';
if($key == 'bar'){
$values['qux'] = 21;
}
}
У меня есть 2 проблемы,
- первый, выход
10 20 30
вместо ожидаемого10 20 30 21
- секунду, даже если я решаю первая проблема, мое значение все равно будет добавлено в конце моего массива
Как я могу добавить запись qux
между bar
и baz
?
Спасибо за ваши идеи.
Возможно, это связано с тем, что вы не создаете новый массив, а используете старый массив для хранения значения. Вот почему он находится в конце вашего массива. Чтобы сделать то, что вы хотите сделать, это сделать новую переменную, скажем, '$ aData', и вставить здесь значения с помощью цикла' foreach'. – Refilon
Для этого вам не нужен второй массив. Вместо 'foreach' используйте цикл' for' и повторяйте длину массива и используя индексную переменную цикла for, добавьте все, что хотите в свой массив. – VSG24