Посмотрите на этот код:
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
Я ищу что-то вроде этого, чтобы:
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
Есть ли функция для этого? (потому array_push
что не будет работать таким образом)
$arrayname = array('indexname1' => $value1, 'indexname2' => $value2);
установил бы их как единственные пункты в$arrayname
. Если вы уже$arrayname
установили и хотите сохранить его значения, попробуйте$arrayname += $anotherarray
. Имейте в виду, что любые существующие ключи в первом массиве будут перезаписаны вторым.$a = array("name" => "John"); $a += array("name" => "Tom");
то$a["name"]
будет "Джон"Вставка значения в массив автоматически создает для него числовой ключ.
При добавлении пары ключ-значение в массив у вас уже есть ключ, вам не нужно его создавать. Вставка ключа в массив не имеет смысла. Вы можете установить только значение определенного ключа в массиве.
источник
Вы можете использовать оператор union (
+
) для объединения массивов и сохранения ключей добавленного массива. Например:Так что вы могли бы сделать
$_GET += array('one' => 1);
.Более подробную информацию об использовании оператора union vs можно найти
array_merge
в документации по адресу http://php.net/manual/en/function.array-merge.php .источник
array_merge()
and+
заключается в том, что 2 массива содержат значения в одном и том же ключе.+
Оператор игнорирует значение из второго массива (не переопределяет), а также не перенумеровывает / не переиндексирует числовые ключи ...Я хотел бы добавить свой ответ в таблицу, и вот оно:
надеюсь, что это кому-нибудь поможет
источник
Именно то, что сказал Пекка ...
В качестве альтернативы вы можете использовать array_merge следующим образом:
Но я бы предпочел метод Пекки, вероятно, так как он намного проще.
источник
Интересно, почему самый простой метод еще не опубликован:
источник
array_merge
и массив union (+=
) ведет себя противоположным образом, то есть array_merge будет учитывать значение из второго массива, а объединение массивов будет учитывать значение из первого массива.Это решение, которое может быть полезным для вас
Когда вы бросаете это. Результат как этот
источник
Я просто искал то же самое, и я понял, что, опять же, мое мышление отличается, потому что я старая школа. Я возвращаюсь к BASIC и PERL и иногда забываю, как на самом деле все просто в PHP.
Я просто сделал эту функцию, чтобы взять все настройки из базы данных, где их 3 колонки. setkey, item (key) & value (value) и поместите их в массив, называемый settings, используя тот же ключ / value без использования push, как описано выше.
Довольно легко и просто на самом деле
Так как другие посты объясняют ... В php нет необходимости "толкать" массив, когда вы используете
Ключ => Значение
И ... Нет необходимости сначала определять массив.
$ Массива = массив ();
Не нужно определять или толкать. Просто назначьте $ array [$ key] = $ value; Это автоматически push и объявление одновременно.
Я должен добавить, что по соображениям безопасности, (P) или (H) elpless (P), я имею в виду Программирование для чайников, я имею в виду PHP .... хехехе, я предлагаю вам использовать эту концепцию только для того, что я намеревался. Любой другой метод может быть угрозой безопасности. Там сделал мой отказ от ответственности!
источник
Это работает просто отлично. создает ключ со значением в массиве
источник
$arr
массива.Немного поздно, но если вы не возражаете против вложенного массива, вы можете использовать этот подход:
Чтобы уточнить, если вы выводите json_encode ($ main_array) , он будет выглядеть как [{"Key": "10"}]
источник
Немного странно, но это сработало для меня
источник
// печатает массив ['key1' => "value1", 'key2' => "value2"]
источник
привет у меня была та же проблема, я нахожу это решение, вы должны использовать два массива, а затем объединить их оба
ссылка: w3schools
источник
Простой способ:
http://php.net/manual/de/function.parse-str.php
источник
Для добавления на первую позицию с помощью
key
иvalue
источник
Чтобы вставить «ключ» и «значение» в существующий массив, вы можете использовать
+=
оператор быстрого доступа.Посмотрите на этот очень простой пример:
Результатом
print_r($GET)
будет:источник
Пример array_merge () ....
$array1 = array("color" => "red", 2, 4); $array2 = array("a", "b", "color" => "green", "shape" => "trapezoid", 4); $result = array_merge($array1, $array2); print_r($result);
Массив ([color] => зеленый, [0] => 2, [1] => 4, [2] => a, [3] => b, [shape] => трапеция, [4] => 4 ,)
источник
Меня устраивает.
источник
$GET['one']=1
, затем использует возвращаемое значение этого оператора (= 1, значение r) и затем выполняетсяarray_push($GET, 1)
. Результат = [0] -> 1, [один] -> 1Я написал простую функцию:
так что я могу легко "вставить" новый элемент:
источник
Здесь есть несколько замечательных примеров. Просто добавив простой пример, чтобы поместить элементы ассоциативного массива в корневой индекс числового индекса.
источник
Я обычно делаю это:
источник