PHP foreach вставить массив

У меня есть массив массивов, и я пытаюсь выполнить цикл по каждому циклу и вставить новый элемент во вложенные массивы.

посмотрите ниже

            $newarray = array(
array("id"=>1,"quantity"=>2),
array("id"=>1,"quantity"=>2),
array("id"=>1,"quantity"=>2),
);

foreach($newarray as $item){
$item["total"] = 9;
}
echo "<br>";
print_r($newarray);

Результат просто даст мне исходный массив без нового «итога». Зачем ?

2

Решение

Так как $item не является ссылкой на $newarray[$loop_index]:

foreach($newarray as $loop_index => $item){
$newarray[$loop_index]["total"] = 9;
}
3

Другие решения

foreach() заявление дает $item как массив: не как реальное значение (потребляющий массив). Это означает, что он может быть прочитан, но не может быть изменен, если только вы не перезапишите массив потребления

Вы могли бы использовать for() и перебрать так: посмотреть демо.

Примечание. Это относится ко всем областям видимости, вам следует изучить это.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector