Est-il possible de préfixer un tableau associatif avec des paires clé littérale => valeur? Je sais que array_unshift () fonctionne avec des touches numériques, mais j'espère quelque chose qui fonctionnera avec des clés littérales.
À 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');
php
arrays
associative-array
Colin Brock
la source
la source
La réponse est non. Vous ne pouvez pas ajouter au début d'un tableau associatif une paire clé-valeur.
Cependant, vous pouvez créer un nouveau tableau contenant la nouvelle paire clé-valeur au début du tableau avec l'opérateur union
+
. Le résultat est un tableau entièrement nouveau et la création du nouveau tableau a une complexité O (n).La syntaxe est ci-dessous.
Remarque: n'utilisez pas array_merge (). array_merge () écrase les clés et ne conserve pas les clés numériques.
la source
Dans votre situation, vous souhaitez utiliser array_merge ():
Pour ajouter une valeur unique, pour un tableau associatif, au lieu de array_unshift (), utilisez à nouveau array_merge ():
la source
@Cletus est parfait. Juste pour ajouter, si l'ordre des éléments dans les tableaux d'entrée est ambigu et que vous avez besoin que le tableau final soit trié, vous voudrez peut-être trier :
la source
ksort
renvoie booléen, donc ce qui précède doit être fait comme deux instructions et non une seule, par exemple$a = $array1 + $array2; ksort($a);
, sinon ce$resulting_array
sera une valeur booléenne et non le tableau que vous attendiez.En utilisant la même méthode que @mvpetrovich, vous pouvez utiliser la version abrégée d'un tableau pour raccourcir la syntaxe.
Références:
PHP: array_merge ()
PHP: Tableaux - Manuel
la source