Php 根据某个值对数组进行排序和排列

Php 根据某个值对数组进行排序和排列,php,arrays,Php,Arrays,我有一个这样的数组 [Defense] => Array ( [0] => stdClass Object ( [id] => 1 [position] => G [point] => 1.6 ) [1] => stdClass Object (

我有一个这样的数组

 [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
中的点
降序对数组进行排序。此外,所有位置都是按顺序排列的(全部
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($array,function($a,$b){
如果($a->position==$b->position)
返回$a->point<$b->point;
其他的
返回$a->position<$b->position;
});
变量转储($数组);

我想说看看phps数组排序函数:
usort()
uasort()
。构建排序算法的逻辑或使用内置数组排序函数。将数组“point或position”变量传递到排序函数中,它们将被相应地排序。感谢各位的回复。@sam您发送的代码是按位置排序的,但不是根据“point”进行排序我想根据点“descending”进行排序运行我编写的上述函数,它首先检查点是否相等,它使用position进行排序,否则它使用point进行排序,这是默认情况,我建议您在php脚本中运行它,我已经运行了它并显示了完美的结果。我希望首先根据位置进行排序,然后对于这些位置,点将按DESC顺序排序。我希望这是有意义的