如何对15.00
键中具有最高点的数组进行排序?
我的数组看起来像这样:
Array
(
[9] => Array
(
[15.00] => 3.0
[20.00] => 8.0
[25.00] => 10.5
)
[2] => Array
(
[15.00] => 2.0
[20.00] => 5.0
[25.00] => 2.5
)
[4] => Array
(
[15.00] => 6.0
[25.00] => 4.0
[30.00] => 6.0
)
)
按顺序应该是:4,9和2
答案 0 :(得分:2)
如果我理解你的问题,我个人可能会使用usort()。在我的回调中,我会比较$a[15.00]
和$b[15.00]
。
答案 1 :(得分:2)
你想要uasort():
function cmp($a, $b) {
if ($a[15.00] < $b[15.00]) return 1;
if ($a[15.00] > $b[15.00]) return -1;
return 0;
}
uasort($data, "cmp");
答案 2 :(得分:2)
PHP有usort
,这是一个允许您通过用户提供的比较功能进行排序的功能。还有uasort
维护索引关联。
以下是一个例子:
<?php
$array = Array(
9 => Array(
15.00 => 3.0,
20.00 => 8.0,
25.00 => 10.5
),
2 => Array(
15.00 => 2.0,
20.00 => 5.0,
25.00 => 2.5
),
4 => Array(
15.00 => 6.0,
25.00 => 4.0,
30.00 => 6.0
)
);
function my_func($a, $b) {
if ($a[15.00] == $b[15.00])
return 0;
return ($a[15.00] < $b[15.00]) ? 1 : -1; // backwards sorting
}
uasort($array, my_func);
var_dump($array);
?>
希望这有帮助。
答案 3 :(得分:-1)
<?
for ($i=1;$i<=count($arr);$i++)
for ($j=$i+1;$j<=count($arr) - 1;$j++)
if ($arr[$i]['15.00'] > $arr[$j]['15.00']) {
$tmp = $arr[$i];
$arr[$i] = $arr[$j];
$arr[$j] = $tmp
}
?>