Comment trier efficacement un tableau PHP multidimensionnel par un champ imbriqué ?
En PHP, il est possible de rencontrer des tableaux multidimensionnels représentant des données tabulaires , où chaque élément contient un tableau associatif de paires champ-valeur. La tâche de trier ces données par un champ spécifique dans les tableaux imbriqués peut être réalisée facilement.
Considérez le tableau similaire à une base de données suivant :
$data = [ [ 'name' => 'Sony TV', 'price' => 600.00 ], [ 'name' => 'LG TV', 'price' => 350.00 ], [ 'name' => 'Samsung TV', 'price' => 425.00 ] ];
Pour trier ce tableau par le ' price', on peut utiliser la fonction array_multisort() avec la fonction array_column(), qui extrait une colonne (champ) spécifique du tableau multidimensionnel. L'extrait suivant accomplit cela :
array_multisort(array_column($data, 'price'), SORT_ASC, $data);
Cet appel réorganisera le tableau par ordre croissant en fonction du champ « prix » tout en supprimant les clés externes du tableau d'origine. Le tableau trié résultant apparaîtra comme :
[ [ 'name' => 'LG TV', 'price' => 350.00 ], [ 'name' => 'Samsung TV', 'price' => 425.00 ], [ 'name' => 'Sony TV', 'price' => 600.00 ] ]
Alternativement, pour les versions PHP antérieures à 8, une solution à deux lignes était requise en raison des restrictions de passage de référence :
$col = array_column($data, 'price'); array_multisort($col, SORT_ASC, $data);
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!