Просто захотелось добавить новый параметр перед моим массивом с помощью 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 состоит в том, что последний работает только с массивами с числовой индексацией.