Comment trier un tableau en PHP et garder les valeurs clés inchangées : nous devons d'abord supprimer les noms de clés du tableau, puis trier les noms de clés en fonction des valeurs correspondantes ; noms de clés pour former un nouveau tableau et renvoyer C'est tout.
Code d'implémentation :
(tutoriel recommandé : tutoriel vidéo php)
$data = array( 1001 => array( 'age' => 22, 'name' => '鸠摩智' ), 1007 => array( 'age' => 21, 'name' => '慕容复' ), 1004 => array( 'age' => 27, 'name' => '乔帮主' ) ); //根据字段age对数组$data进行降序排列 $data = arraySort($data, "age", "desc" ); print_r($data); /** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */ function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } if ($type == 'asc') { natsort($keysvalue); } if ($type == 'desc') { natsort($keysvalue); $keysvalue = array_reverse($keysvalue, TRUE); // 将原数组中的元素顺序翻转,如果第二个参数指定为 true,则元素的键名保持不变 } foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }
Ici, nous pouvons également simplifier la fonction arraySort, avec le même résultat de traitement :
/** * @desc arraySort php二维数组排序 按照指定的key 对数组进行自然排序 * @param array $arr 将要排序的数组 * @param string $keys 指定排序的key * @param string $type 排序类型 asc | desc * @return array */ function arraySort($arr, $keys, $type = 'asc') { $keysvalue = $new_array = array(); foreach ($arr as $k => $v) { $keysvalue[$k] = $v[$keys]; } $type == 'asc' ? asort($keysvalue) : arsort($keysvalue); foreach ($keysvalue as $k => $v) { $new_array[$k] = $arr[$k]; } return $new_array; }
Résultat de sortie :
Le nom de la clé reste inchangé, et l'implémentation Le principe est très simple, retirez d'abord les noms de clés, puis triez les noms de clés, puis attribuez des valeurs aux noms de clés correspondants pour former un nouveau tableau et le renvoyer.
Comme vous pouvez le constater, nous utilisons ici principalement plusieurs fonctions de tri principales de PHP.
asort() trie le tableau associatif par ordre croissant par valeur de clé.
arsort() trie le tableau associatif par ordre décroissant par valeur de clé.
natsort() implémente le "tri naturel", c'est-à-dire la méthode de tri des nombres de 1 à 9, et la méthode de tri des lettres de a à z, avec les plus courtes en premier. L'index du tableau reste associé à la valeur de la cellule.
Remarque : Dans l'algorithme de tri naturel, le nombre 2 est inférieur au nombre 10. Dans les algorithmes de tri informatique, 10 est inférieur à 2 car le premier nombre de « 10 » est inférieur à 2.
Recommandations associées : formation php
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!