Как добавить в массив пару ключ-значение на php?
В общем, вопрос, как это сделать?
Нужна функция, вроде array_push(), только для двумерных массивов.
arr = array( 'lol'=>'1', 'lol2'=>'2' ); arr2 = array ( 'lol3'=>'3' );
как их объединить, чтобы было:
arr = array( 'lol'=>'1', 'lol2'=>'2' 'lol3'=>'3' );
- Вопрос задан более трёх лет назад
- 50836 просмотров
Комментировать
Решения вопроса 2
Александр Кубинцев @akubintsev
Опытный backend разработчик
Начиная с php 5.4 можно использовать конструкцию для ассоциативных массивов вида
$arr += $arr2; // или так $arr += ['lol3'=>'3'];
При этом, если в первом массиве уже есть ключ, который присутствует во 2-м массиве, то результирующее значение будет из 2-го массива.
Ответ написан более трёх лет назад
Нравится 9 3 комментария

При этом, если в первом массиве уже есть ключ, который присутствует во 2-м массиве, то его значение не перезапишется.
$arr1 = ['a' => 1, 'b' => 2]; $arr2 = ['a' => 3, 'c' => 4]; // array_merge($arr2, $arr1) === var_export($arr1 + $arr2); // out: array ('a' => 1, 'b' => 2, 'c' => 4) // array_merge($arr1, $arr2) === var_export($arr2 + $arr1); // out: array ('a' => 3, 'b' => 2, 'c' => 4)
Массив и ассоциативный массив — PHP: Ассоциативные массивы
В PHP есть только один тип данных для массивов — Array. Его уникальность состоит в том, что с одной стороны он работает как обычный массив, а с другой — как ассоциативный. Зависит от того, как его используют.
Поначалу такой подход может подкупить своей кажущейся простотой, особенно тех, кто не имел дела с другими языками. Но чем дальше в код, тем больше проблем он приносит.
Самый простой пример — JSON. В JSON массив и ассоциативный массив — разные сущности:
Ассоциативный массив
"key": "value", "key2": "value2" >
Массив
["value", "value2"]
Если преобразовать JSON в структуру на PHP, то эта информация теряется:
// Это JSON, в котором есть и массив, и ассоциативный массив $json = '< "key": "value", "key2": [1, 2] >'; json_decode($json, true); // Внутри PHP разницы нет, так как все массивы ассоциативные // Array // ( // [key] => value // [key2] => Array // ( // [0] => 1 // [1] => 2 // ) // )
Если мы не знаем структуру JSON, то у нас нет простого способа понять, что перед нами — массив или ассоциативный массив. В интернете с подобным сталкиваются постоянно и предлагают такой способ, как анализ ключей. Если они все числовые, то считаем, что массив, иначе — ассоциативный массив.
function isAssoc(array $items) if ($items === []) return false; return array_keys($items) !== range(0, count($items) - 1); > isAssoc(['a', 'b', 'c']); // false isAssoc(['1' => 'a', '0' => 'b', '2' => 'c']); // true
Конвертация из массива в JSON сопряжена с такими же проблемами. Как понять, во что конвертировать переданный массив?
Другая проблема заключается в том, что достаточно легко ошибиться с типом массива и начать его использовать не по назначению:
$data = []; $data[] = 10; $data['key'] = 'value'; $data[] = 'hi!';
Первое удивление — код работает! Теперь попробуйте догадаться, что находится внутри $data .
print_r($data); // => Array // ( // [0] => 10 // [key] => value // [1] => hi! // )
Из этого вывода должно быть понятно, что индексированных массивов в PHP нет. Есть упорядоченные ассоциативные массивы, с операцией [] = : добавить элемент с автоматическим присвоением ключа.
$data = ['key' => 'value']; $data[] = 'console'; // Array // ( // [key] => value // [0] => console // )
Но самое неудобное — функции которые могут сохранять, а могут не сохранять ключи. Обычно в таких функциях есть дополнительный параметр флаг preserve_keys , который меняет описанное поведение.
- array_reverse array_reverse(array $array, bool $preserve_keys = false): array Если preserve_keys установлен в TRUE, то числовые ключи будут сохранены. Нечисловые ключи не подвержены этой опции и всегда сохраняются.
- array_unique array_unique(array $array, int $flags = SORT_STRING): array
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
Добавить элемент в ассоциативный массив
Добавить элемент в ассоциативный массив?
Не создать массив ассоциативных массивов, а именно добавить ключ/значение в ассоциативный массив?
1 2 3 4
$TempUpdate = null; foreach ($TableTitleNoID as $TableTitlevalue) { $TempUpdate[] = [$TableTitlevalue => $mysqli->real_escape_string($_POST[$TableTitlevalue][$value])]; }
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Добавить в Ассоциативный массив
Приветствую всех! Не нашел ответа. Подскажите, надо добавить несколько ключей и значений в.
Добавить в ассоциативный массив данные
Вроде банальная задача, но есть траблы, вот такой массив у меня есть: array(2) < => .
Как добавить третий параметр в ассоциативный массив?
Где задать вопрос по php? Хотелось бы приблительно оценит
Распарсить ассоциативный массив и добавить его в БД
Всем привет. Надеюсь на вашу помощь. AJAXом из JavaScript я передаю в php строку JSON, которую.
Регистрация: 14.03.2018
Сообщений: 30
Чем не вариант array_push?добавляете в конкретный массив конкретный элемент. Нет?
Регистрация: 17.12.2014
Сообщений: 322
Сообщение от romantiqueamour 
Чем не вариант array_push?добавляете в конкретный массив конкретный элемент. Нет?
Добавлено через 1 минуту
Все просто : надо просто добавлять пару ключ/значение
1 2 3
foreach ($TableTitleNoID as $TableTitlevalue) { $temp_Title[$TableTitlevalue] = $mysqli->real_escape_string($_POST[$TableTitlevalue][$value]); }
If you’re going to use array_push() to insert a «$key» => «$value» pair into an array, it can be done using the following:
It is not necessary to use array_push.
Регистрация: 14.03.2018
Сообщений: 30
Ну или так) в первом случае были пустые скобки, вот это и сбило.)
Регистрация: 17.03.2018
Сообщений: 13
В ассоциативный массив добавляется по ключу. то есть $array[$key] = $value
в случае с array_push элемент добавится с индексом, то есть [0=>. 1=>. ]
Регистрация: 07.08.2015
Сообщений: 48
Добавить элемент к массиву можно так:
1 2 3 4 5 6 7 8 9 10 11 12 13
//Обычный массив $array = []; $array[] = 1; $array[] = 2; $array[] = 3; //Ассоциативный массив $array = []; $array['one'] = 1; $array['two'] = 2; $array['three'] = 3;
Такой синтаксис используется и для обращения, и для создания новых элементов массива.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как в такой ассоциативный массив добавить новые данные через emplace/make_pair?
Есть класс контейнер, который содержит в себе объекты двух других классов. Вопрос: как в такой.

Задан массив AX (N). Добавить массив С(К). Выполнить сортировку разделением. В полученном векторе заменить первый положительный элемент на минимал
Задан массив AX (N). Добавить массив С(К). Выполнить сортировку разделением. В полученном векторе.

Как передвигать указатель чтобы выделить память под новый элемент и добавить новый элемент в массив?
Допустим есть некое условие,нам нужно при каждом его выполнении выделить память под новый элемент и.
Синтаксис — PHP: Ассоциативные массивы
Синтаксически работа с ассоциативными массивами очень похожа на то, как мы работали с обычными массивами. Различия кроются в деталях.
$user = ['name' => 'Vasya', 'married' => true, 'age' => 25];
Общий принцип такой: внутри квадратных скобок через запятую перечисляются пары ключ-значения в формате key => value . Тип значения может быть любым, ключ — обычно, строка.
Если ключей много, то определение можно растянуть на несколько строк:
$user = [ 'name' => 'Vasya', 'married' => true, 'age' => 25 ];
Так же, как и с обычным массивом, ассоциативный массив можно создать пустым:
$user = [];
Синтаксически эта запись совпадает со способом создания обычного (пустого) массива. Возникает вопрос: как интерпретатор различает типы массивов? Хитрость в том, что в PHP индексированных массивов нет, все массивы — ассоциативные. Но если работать с ними так, как мы делали в предыдущем курсе, то он ведёт себя как индексированный массив (почти, различия всё же есть). Подробнее этот вопрос разбирается позже, в одном из уроков.
Извлекаются элементы из ассоциативного массива так:
$user['name']; // Vasya $user['age']; // 25
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно
- 130 курсов, 2000+ часов теории
- 1000 практических заданий в браузере
- 360 000 студентов
Наши выпускники работают в компаниях:
