Rumah > Soal Jawab > teks badan
Susun atur:
$array = [
0=>"z01",
1=>"Z32",
2=>"z17",
3=>"Z16",
];
Perlu hasil diisih
$rs_array = [
0=>"z01",
3=>"Z16",
2=>"z17",
1=>"Z32",
];
Apakah cara yang baik untuk mengisih?
某草草2017-05-16 13:02:16
asort($array, SORT_FLAG_CASE | SORT_NATURAL);
var_dump($array);
Dapatkan:
array:4 [
0 => "z01"
3 => "Z16"
2 => "z17"
1 => "Z32"
]
PHPz2017-05-16 13:02:16
Anda boleh menggunakan fungsi perbandingan yang ditentukan pengguna, 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
Satu fungsi sistem untuk melakukannya
<?php
$array = [
0=>"z01",
1=>"Z32",
2=>"z17",
3=>"Z16",
];
natcasesort($array);
print_r($array);