PHP prepend tableau associatif avec littérale clés?
Est-il possible d'ajouter un tableau associatif avec littérale key=>valeur des paires? Je sais que array_unshift() fonctionne avec les touches numériques, mais je suis en espérant quelque chose qui va travailler avec littérale clés.
Titre d'exemple, j'aimerais faire ce qui suit:
$array1 = array('fruit3'=>'apple', 'fruit4'=>'orange');
$array2 = array('fruit1'=>'cherry', 'fruit2'=>'blueberry');
//prepend magic
$resulting_array = ('fruit1'=>'cherry',
'fruit2'=>'blueberry',
'fruit3'=>'apple',
'fruit4'=>'orange');
Vous devez vous connecter pour publier un commentaire.
Pouvez-vous pas faire:
?
La réponse est non. Vous ne pouvez pas ajouter un tableau associatif avec une paire clé-valeur.
Cependant, vous pouvez créer un nouveau tableau qui contient la nouvelle paire clé-valeur au début de la matrice avec l'opérateur union
+
. Le résultat est un tout nouveau tableau, bien que la création de la nouvelle matrice est en O(n) la complexité.La syntaxe est la suivante ci-dessous.
Remarque: Ne pas utiliser array_merge(). array_merge() remplace les clés et ne permet pas de conserver les touches numériques.
Dans votre situation, vous souhaitez utiliser array_merge():
À ajouter une valeur unique, pour un tableau associatif, au lieu de array_unshift(), utilisez à nouveau les array_merge():
@Cletus est sur place. Juste pour ajouter, si l'ordre des éléments dans la saisie des tableaux sont ambiguës, et vous avez besoin de la finale du tableau à trier, vous pouvez ksort:
ksort
retourne un booléen, de sorte que le ci-dessus doit être fait de deux états non pas un, par exemple,$a = $array1 + $array2; ksort($a);
, sinon$resulting_array
sera une valeur booléenne pas le tableau que vous attendiez.À l'aide de la même méthode que @mvpetrovich, vous pouvez utiliser la version courte d'un tableau de raccourcir la syntaxe.
Références:
PHP: array_merge()
PHP: les Tableaux - Manuel