Ce problème est quelque peu similaire à order by dans Mysql. Ce qu'il faut, c'est simuler le tri des différents champs du tableau.
Supposons qu'il existe le tableau suivant :
$beforeSort = [
"0" => ["nom" => "Zhang San", "anglais" =>
"1" => ["nom" => "李思", "anglais" =>
"2" => ["nom" => "老王", "anglais" =>
];
Vous devez maintenant suivre l'ordre chinois
dans le tableau. S'ils sont identiques, suivez l'ordre math
. Le résultat final devrait être le tableau suivant :< /p>
$afterSort = [
"2" => ["nom" => "老王", "anglais" =>
"0" => ["nom" => "Zhang San", "anglais" =>
"1" => ["nom" => "李思", "anglais" =>
];
Avez-vous différentes manières d'y parvenir ?
C'est la version que j'utilise moi-même. Comment l'utiliser :
Résultats d'impression :
Vous pouvez convertir des tableaux en ensembles, puis les traiter. La méthode de tri implémentée à l'aide des collections PHP est spécialisée dans divers tris complexes
<?php
.//Vous devez maintenant suivre l'ordre chinois dans le tableau. S'ils sont identiques, suivez l'ordre mathématique. Le résultat final devrait être le tableau suivant :
$beforeSort = [
];
$data_math = array_column($beforeSort,'math');
$data_chinese = array_column($beforeSort,'chinese');
array_multisort($data_chinese,SORT_ASC,$data_math,SORT_ASC,$beforeSort); );
///J'emprunte la réponse au gars d'en haut
Pour trier les tableaux multidimensionnels, il existe une fonction officielle qui peut implémenter array_multisort
$avantTri = [
];
foreach ($beforeSort as $key => $value) {
}
array_multisort($chinese, SORT_ASC, $math, SORT_ASC, $beforeSort);
print_r($beforeSort);