Maison > Questions et réponses > le corps du texte
Tableau :
$array = [
0=>"z01",
1=>"Z32",
2=>"z17",
3=>"Z16",
];
Besoin de résultats triés
$rs_array = [
0=>"z01",
3=>"Z16",
2=>"z17",
1=>"Z32",
];
Quelle est la bonne façon de trier ?
某草草2017-05-16 13:02:16
asort($array, SORT_FLAG_CASE | SORT_NATURAL);
var_dump($array);
Obtenez :
array:4 [
0 => "z01"
3 => "Z16"
2 => "z17"
1 => "Z32"
]
PHPz2017-05-16 13:02:16
Vous pouvez utiliser la fonction de comparaison définie par l'utilisateur, usort.
$array = [
0=>"z01",
1=>"Z32",
2=>"z17",
3=>"Z16",
];
function cmp($a,$b){
$a = intval(substr($a, 1));
$b = intval(substr($b, 1));
if ($a == $b) {
return 0;
}
return ($a < $b ) ? -1 : 1;
}
usort($array, "cmp");
print_r($array);
/*
Array
(
[0] => z01
[1] => Z16
[2] => z17
[3] => Z32
)
*/
phpcn_u15822017-05-16 13:02:16
Une fonction système pour le faire
<?php
$array = [
0=>"z01",
1=>"Z32",
2=>"z17",
3=>"Z16",
];
natcasesort($array);
print_r($array);