Как добавить значение в массив php
Перейти к содержимому

Как добавить значение в массив php

  • автор:

Как добавить элемент в многомерный массив 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»: >

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">,,]> 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *