PHP – добавить элемент в начало ассоциативного массива

Как добавить элемент в начало ассоциативного массива? Например, скажем, у меня есть такой массив:

$arr = array('key1' => 'value1', 'key2' => 'value2'); 

Когда я добавляю что-то к нему, как в $arr['key0'] = 'value0'; , Я получил:

  массив
 (
     [key1] => значение1
     [key2] => значение2
     [key0] => значение0
 ) 

Как я могу это сделать?

  массив
 (
     [key0] => значение0
     [key1] => значение1
     [key2] => значение2
 ) 

Благодаря,
тройник

Вы можете использовать оператор union :

 $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; }