Personnalisation du tri des tableaux à l'aide d'un tableau de référence
En PHP, les tableaux peuvent être triés de différentes manières, mais il peut être difficile de les trier dans un ordre spécifique basé sur un tableau différent. Cet article fournit une solution à ce problème, expliquant comment trier un tableau associatif plat en fonction d'un ordre de clés prédéfini.
La solution proposée exploite les fonctions array_merge ou array_replace. Ces fonctions prennent deux tableaux comme arguments : le premier spécifie l'ordre souhaité (sous forme de paires clé-valeur) et le second contient les données réelles à trier.
Voici comment fonctionnent ces fonctions :
array_merge : Il fusionne les deux tableaux en commençant par le tableau de commande et en écrasant ou en ajoutant des clés avec les données du tableau de commande réel. array.
array_replace : Il fait la même chose que array_merge mais écrase uniquement les clés existantes.
Considérez l'exemple suivant :
$customer['address'] = '123 fake st'; $customer['name'] = 'Tim'; $customer['dob'] = '12/08/1986'; $customer['dontSortMe'] = 'this value doesnt need to be sorted'; $properOrderedArray = array_merge(array_flip(array('name', 'dob', 'address')), $customer);
Dans ce Par exemple, array_flip crée un tableau où les éléments (« nom », « dob », « adresse ») deviennent des clés et les clés deviennent valeurs. Cela fait office de tableau de commande. En fusionnant ce tableau de commande avec $customer, le $properOrderedArray est généré avec l'ordre de clé souhaité tout en préservant les données réelles.
Le $properOrderedArray résultant serait :
array( 'name' => 'Tim', 'dob' => '12/08/1986', 'address' => '123 fake st', 'dontSortMe' => 'this value doesnt need to be sorted')
Cette approche permet pour un tri flexible de tableaux associatifs plats basés sur n'importe quel tableau d'ordre prédéfini, garantissant l'ordre correct des clés et de leurs valeurs correspondantes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!