Eva*_*van 15 php arrays sorting
我有一个由数组组成的数组.我想通过子数组的属性对父数组进行排序.这是一个例子
array(2){
[0]=> array(3){
[0]=> string(6) "105945"
[1]=> string(10) "First name"
[2]=> float(0.080878465391)
}
[1]=> array(3) {
[0]=> string(6) "109145"
[1]=> string(11) "Second name"
[2]=> float(0.0504154818384)
}
}
Run Code Online (Sandbox Code Playgroud)
我想在子数组中按[2]升序对父数组进行排序,因此在这种情况下,结果将是子数组反转(.05,08).这是否可以使用众多PHP排序函数中的任何一种?
cod*_*ict 28
您可以使用usort函数:
$arr = array(
array("105945","First name",0.080878465391),
array("109145","Second name",0.0504154818384)
);
function cmp($a, $b) {
if ($a[2] == $b[2]) {
return 0;
}
return ($a[2] < $b[2]) ? -1 : 1;
}
usort($arr,"cmp");
Run Code Online (Sandbox Code Playgroud)
HKa*_*lla 10
从 PHP >= 7.0 开始,您可以将 usort 与 spaceship 运算符结合使用
usort($arr, function ($a, $b) {
return $a[2] <=> $b[2];
});
Run Code Online (Sandbox Code Playgroud)
见:http : //php.net/manual/de/migration70.new-features.php
对于类似数据库的模式,请使用array_multisort如示例 #3 所示。
例如:
$sort = array();
foreach ($data as $key => $row) {
$sort[$key] = $row['basis'];
}
array_multisort($sort, SORT_ASC, $data);
Run Code Online (Sandbox Code Playgroud)
$data你的数据数组在哪里,是basis用于排序的元素。
| 归档时间: |
|
| 查看次数: |
12106 次 |
| 最近记录: |