我有一个类似的数组
[Defense] => Array
(
[0] => stdClass Object
(
[id] => 1
[position] => G
[point] => 1.6
)
[1] => stdClass Object
(
[id] => 1
[position] => F
[point] => 2.7
)
[2] => stdClass Object
(
[id] => 1
[position] => C
[point] => 1.4
)
[3] => stdClass Object
(
[id] => 2
[position] => C
[point] => 1.7
)
[4] => stdClass Object
(
[id] => 2
[position] => D
[point] => 1.1
)
[5] => stdClass Object
(
[id] => 1
[position] => F
[point] => 1.7
)
[6] => stdClass Object
(
[id] => 1
[position] => G
[point] => 1.6
)
[7] => stdClass Object
(
[id] => 1
[position] => G
[point] => 1.8
)
[8] => stdClass Object
(
[id] => 2
[position] => D
[point] => 1.5
)
)
我想根据PHP
中的点descending
对数组进行排序。此外,所有位置都是按顺序排列的(所有G
都比所有F
多,依此类推。)像这样:
[Defense] => Array
(
[0] => stdClass Object
(
[id] => 1
[position] => G
[point] => 1.8
)
[1] => stdClass Object
(
[id] => 1
[position] => G
[point] => 1.6
)
[2] => stdClass Object
(
[id] => 1
[position] => G
[point] => 1.6
)
[3] => stdClass Object
(
[id] => 1
[position] => F
[point] => 2.7
)
[4] => stdClass Object
(
[id] => 1
[position] => F
[point] => 1.7
)
[5] => stdClass Object
(
[id] => 1
[position] => C
[point] => 1.7
)
[6] => stdClass Object
(
[id] => 2
[position] => C
[point] => 1.4
)
[7] => stdClass Object
(
[id] => 2
[position] => D
[point] => 1.5
)
[8] => stdClass Object
(
[id] => 2
[position] => D
[point] => 1.1
)
)
有什么帮助吗?
使用usort()函数对数组进行排序,如下所示
usort($array,function($a,$b){
if($a->position == $b->position )
return $a->point < $b->point;
else
return $a->position < $b->position;
});
var_dump($array);