PHP-добавить элемент в начало ассоциативного массива [дубликат]
этот вопрос уже есть ответ здесь:
PHP добавляет ассоциативный массив с литеральными ключами?
4 ответы
как я могу добавить элемент в начало ассоциативного массива? Например, скажем, у меня есть такой массив:
$arr = array('key1' => 'value1', 'key2' => 'value2');
когда я добавляю что-то к нему, как в $arr['key0'] = 'value0';, Я получить:
Array
(
[key1] => value1
[key2] => value2
[key0] => value0
)
как мне сделать, чтобы быть
Array
(
[key0] => value0
[key1] => value1
[key2] => value2
)
спасибо,
Ти
5 ответов:
вы могли бы использовать Союз оператор:
$arr1 = array('key0' => 'value0') + $arr1;или
array_merge.
один из способов-с
array_merge:<?php $arr = array('key1' => 'value1', 'key2' => 'value2'); $arr = array_merge(array('key0' => 'value0'), $arr);в зависимости от обстоятельств, вы можете также использовать
ksort.
$array = array('key1' => 'value1', 'key2' => 'value2'); array_combine(array_unshift(array_keys($array),'key0'),array_unshift(array_values($array),'value0'))
Если вы не хотите объединять массивы, вы можете просто использовать
ksort()на массиве перед итерацией по нему.
function unshift( array & $array, $key, $val) { $array = array_reverse($array, 1); $array[$key] = $val; $array = array_reverse($array, 1); return $array; }
Comments