У меня есть такой массив
[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
)
)
Я хочу отсортировать массив на основе точки, descending
в PHP
. Кроме того, все позиции входят в последовательность (все 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);
usort()
:usort()
илиuasort()
.