Как добавить элемент в многомерный массив php
Для этого нужно указать индекс под которым в массиве располагается подмассив и использовать [] . Стоит сказать, что вложенность может быть разной и тогда нужно последовательно углубиться в массив по индексам, пока мы не дойдём до нужно нам подмассива. С добавлением элемента во вложенный массив лучше разобраться на примерах.
$collection = ['one', ['two', 'three']]; $collection[1][] = 'four'; // ['one', ['two', 'three', 'four']] $collection2 = ['one', ['two', 'three', ['four']]]; $collection2[1][2][] = 'five'; // ['one', ['two', 'three'. ['four', 'five']]]
18 августа 2023
А если мы перебираем с помощью foreach и индекс массива нам не известен, есть только непосредственно итерация массива
'foo', 'b' => 'foo'], ['c' => 'foo', 'd' => 'foo'], ); foreach($massiv as $i) < $i['j'] = 'foo'; >;
К сожалению не добавляет
Как записать значение в массив php
Для ассоциативных массивов нужно указывать ключ по которому мы хотим записать значение:
$collection = ['hexlet' => 'One Love'] // [ // "hexlet" => "One Love", // ] $collection['Awesomeness'] = true; print_r($collection); // => [ // => "Hexlet" => "One Love", // => "Awesomeness" => true, // => ]
Добавить значение в массив laravel
Попробуйте заносить значения в массив через метод array_push :
array_push — добавляет один или несколько элементов в конец массива
Отслеживать
14k 13 13 золотых знаков 38 38 серебряных знаков 63 63 бронзовых знака
ответ дан 12 дек 2018 в 14:09
zolotoi2012 zolotoi2012
11 3 3 бронзовых знака
Согласно документации Laravel, метод array_add добавляет пару ключ-значение в массив, если данный ключ еще не существует в массиве. Согласно вашему коду:
array_add($array, '', $fl);
Вы всегда добавляете один и тот же ключ, поэтому будет добавлен лишь первый элемент, даже если итераций в вашем цикле foreach было больше чем одна (пять к примеру). Чтобы добавить все значения в массив, необходимо указывать уникальные ключи каждому добавляемому элементу, это второй параметр в методе array_add .
Добавить элемент в массив без индекса
Во первых, в массиве должен быть индекс или ключ, по которому элемент может быть найден или идентифицирован. Во-вторых, если Вы опишете, что нужно сделать в конечном итоге, то может народ подскажет решение.
18 июн 2016 в 3:51
@zhenyab в конечном итоге.
18 июн 2016 в 5:26
@ikerya а как вы потом собираетесь обращаться к элементу массива, у которого нет ключа (идентификатора), по которому нужно доставать этот самый элемент?
18 июн 2016 в 5:30
18 июн 2016 в 8:34
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Без индекса элемент не может быть добавлен в массив. Но вы можете всегда назначить свой индекс будь то числовой или текстовый.
Отслеживать
ответ дан 18 июн 2016 в 5:43
141 4 4 бронзовых знака
18 июн 2016 в 8:36
В том, что Вы написали, хоть и с ошибкой, но индексы присутствуют. В массиве верхнего уровня индексом является текстовая метка «response». После добавления элемента в начало массива, добавляется числовой индекс 0. И в результате ваш массив выглядит: <0: <"cid": 3, . >, «response»: >0:>
19 июн 2016 в 2:28
Вы получаете ответ в формате JSON.
Используйте встроенную функцию json_encode() для преобразования вашего массива.
$array = [ 'response' => [ [ 'cid' => 1, 'title' => 'test' ], [ 'cid' => 2, 'title' => 'test2' ] ] ]; echo json_encode($array); // <"response":[<"cid":1,"title":"test">,]>
Попробуем в массив response добавить элемент, чтобы он был таким же, как предыдущие два:
$array['response'][] = [ 'cid' => 3, 'title' => 'test3' ]; echo json_encode($array); //<"response":[<"cid":1,"title":"test">,,]>