108 votes

PHP - Ajouter un élément au début d'un tableau associatif

Comment puis-je ajouter un élément au début d'un tableau associatif ? Par exemple, disons que j'ai un tableau comme celui-ci :

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

Lorsque j'y ajoute quelque chose, comme dans $arr['key0'] = 'value0'; j'obtiens :

Array
(
    \[key1\] => value1
    \[key2\] => value2
    \[key0\] => value0
)

Comment puis-je faire en sorte que ce soit

Array
(
    \[key0\] => value0
    \[key1\] => value1
    \[key2\] => value2
)

Merci,
Tee

223voto

Felix Kling Points 247451

Vous pourriez utiliser le syndicat opérateur :

$arr1 = array('key0' => 'value0') + $arr1;

ou array_merge .

21voto

outis Points 39377

Une façon de le faire est de array_merge :

<?php
$arr = array('key1' => 'value1', 'key2' => 'value2');
$arr = array_merge(array('key0' => 'value0'), $arr);

Selon les circonstances, vous pouvez également faire appel à ksort .

8voto

Mark Baker Points 90240
$array = array('key1' => 'value1', 'key2' => 'value2');
array_combine(array_unshift(array_keys($array),'key0'),array_unshift(array_values($array),'value0'))

3voto

Tomek Points 6
function unshift( array & $array, $key, $val)
{
    $array = array_reverse($array, 1);
    $array[$key] = $val;
    $array = array_reverse($array, 1);

    return $array;
}

2voto

James C Points 9120

Si vous ne voulez pas fusionner les tableaux, vous pouvez simplement utiliser ksort() sur le tableau avant de l'itérer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X