Я хочу сортировать массив по значению P, если два P являются одинаковыми, а затем сортируют по PD, если два PD одинаковы, а затем сортируют по PF так же, как PA.
Как я достигаю этого?Сортировка Многомерный массив с несколькими значениями в PHP
У меня есть многомерный массив в PHP Как и
PHP:
$abc = array( array('id' => 1,'name' => 'abc','overall' => array('MP' => '2','W'=> '2','L' => '0','D'=> '0','PF' => '2904','PA' => '1932','PD' => '972','P' => '6')), array('id' => 1,'name' => 'abc','overall' => array('MP' => '2','W'=> '1','L' => '1','D'=> '0','PF' => '2320','PA' => '1974','PD' => '346','P' => '3')), array('id' => 1,'name' => 'abc','overall' => array('MP' => '2','W'=> '1','L' => '1','D'=> '0','PF' => '1620','PA' => '1824','PD' => '-204','P' => '3')), array('id' => 1,'name' => 'abc','overall' => array('MP' => '2','W'=> '0','L' => '2','D'=> '0','PF' => '2200','PA' => '2300','PD' => '-100','P' => '0')) );
HTML:
Array ( [0] => Array ( [id] => 1 [name] => abc [overall] => Array ( [MP] => 2 [W] => 0 [L] => 2 [D] => 0 [PF] => 2200 [PA] => 2300 [PD] => -100 [P] => 0 ) ) [1] => Array ( [id] => 1 [name] => abc [overall] => Array ( [MP] => 2 [W] => 1 [L] => 1 [D] => 0 [PF] => 2320 [PA] => 1974 [PD] => 346 [P] => 3 ) ) [2] => Array ( [id] => 1 [name] => abc [overall] => Array ( [MP] => 2 [W] => 1 [L] => 1 [D] => 0 [PF] => 1620 [PA] => 1824 [PD] => -204 [P] => 3 ) ) [3] => Array ( [id] => 1 [name] => abc [overall] => Array ( [MP] => 2 [W] => 2 [L] => 0 [D] => 0 [PF] => 2904 [PA] => 1932 [PD] => 972 [P] => 6 ) ) )
Хочет похож, как это.
Array ( [0] => Array ( [id] => 1 [name] => abc [overall] => Array ( [MP] => 2 [W] => 2 [L] => 0 [D] => 0 [PF] => 2904 [PA] => 1932 [PD] => 972 [P] => 6 ) ) [1] => Array ( [id] => 1 [name] => abc [overall] => Array ( [MP] => 2 [W] => 1 [L] => 1 [D] => 0 [PF] => 2320 [PA] => 1974 [PD] => 346 [P] => 3 ) ) [2] => Array ( [id] => 1 [name] => abc [overall] => Array ( [MP] => 2 [W] => 1 [L] => 1 [D] => 0 [PF] => 1620 [PA] => 1824 [PD] => -204 [P] => 3 ) ) [3] => Array ( [id] => 1 [name] => abc [overall] => Array ( [MP] => 2 [W] => 0 [L] => 2 [D] => 0 [PF] => 2200 [PA] => 2300 [PD] => -100 [P] => 0 ) ) )
Я пробовал вот так.
$memberArray1 = usort($memberArray, function($a, $b) { return $b['overall']['P'] - $a['overall']['P']; }); $memberArray1 = usort($memberArray, function($a, $b) { return $b['overall']['PD'] - $a['overall']['PD']; });
Но вопрос, когда я сортировать как P, то он работает, но после того, когда я вроде как PD, то он вроде по PD не нравится P.
Опубликовать ваши попытки. Что вы пробовали до сих пор? –