PHP добавить в начало массива без переупорядочения - PullRequest
5 голосов
/ 12 марта 2011

Я пытался найти ответ на свой вопрос, но я не мог найти тот, который сделал это, не переупорядочив числовые индексы.

Есть ли способ добавить строку в начало массива без переупорядочения ключей (числовых ключей) без использования цикла?

Спасибо

EDIT:

Я попытаюсь объяснить сценарий. (Я использую CodeIgniter).

У меня есть массив, который используется в моем приложении. Этот массив также используется для создания раскрывающегося списка и проверки этих раскрывающихся значений в форме, которую я имею. То, что я хотел бы сделать, это вставить пустое значение в начало массива, чтобы в моем раскрывающемся списке была выбрана пустая опция по умолчанию.

Так из этого

1 => Здравствуйте,
2 => Мир

до

'' => ''
1 => Здравствуйте,
2 => Мир

1 Ответ

9 голосов
/ 12 марта 2011

Поскольку вы не хотите изменять числовые индексы, я предполагаю, что array_unshift не будет работать.

Так что, возможно, если вы знаете индексы, вы можете сделать это следующим образом:

$x = array(1 => 1, 2 => 2, 3 => 3); 
$y = array(1101 => 123);
var_dump( $y + $x );

/* Output:
array(4) {
  [1101]=>
  int(123)
  [1]=>
  int(1)
  [2]=>
  int(2)
  [3]=>
  int(3)
}
*/

Обратите внимание, что ключ теперь действительно перед массивом, поэтому foreach будет работать нормально.

Ответ на редактирование:

$x = array(1 => "Hello", 2 => "Welt"); 
$y = array("" => "");

var_dump($y + $x);

/*
array(3) {
  [""]=>
  string(0) ""
  [1]=>
  string(5) "Hello"
  [2]=>
  string(4) "Welt"
}
*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...