Просто захотелось добавить новый параметр перед моим массивом с помощью array_unshift, но: Если я делаю это как обычно, у него есть числовой индекс. Как я могу отклонить индекс, например, что-то вроде этого …
<?php $queue = array("a", "B"); array_unshift($queue, "front" => "hello" ); //Not working, this is my question ;) ?>
Тогда массив будет выглядеть так:
Array { front => hello 0 => a 1 => B }
Похоже, что array_unshift не может делать то, что вы хотите. Попробуй это:
$queue = array('a', 'B'); $queue = array_merge(array('front' => 'hello'), $queue);
Это дает результат, который вы хотите.
массив ( [front] => привет [0] => a [1] => b )
array_push
, array_pop
, array_shift
, array_unshift
предназначены для числовых массивов.
Вы можете использовать одно из решений array_merge
о array_merge
уже упоминалось, или вы можете использовать оператор +
для массивов:
$queue = array('front' => 'Hello') + $queue;
Примечание. При использовании array_merge
элементы с теми же ключами из второго массива будут перезаписывать те, что array_merge
в первом из них, поэтому, если «фронт» уже существует в $queue
он не будет перезаписан, а только перенесен на передний план. С другой стороны, если вы используете +
, новое значение будет присутствовать в результате и будет спереди.
Использовать array_merge
:
$new_queue = array_merge(array("front"=>"hello"), $queue);
Причина, почему вы должны использовать array_merge
а не array_unshift
состоит в том, что последний работает только с массивами с числовой индексацией.