Home > Backend Development > PHP Tutorial > 请问数组怎么多条件排序

请问数组怎么多条件排序

WBOY
Release: 2016-06-23 13:26:02
Original
1112 people have browsed it

array(
       '000-00'=>array(
                                    'qty'=>20,
                                    'price'=>200
                                  ),
       '0001-00'=>array(
                                     'qty'=>10,
                                    'price'=>100
                                  ),
      '0002-00'=>array(
                                      'qty'=>30,
                                     'price'=>50
                                 )

 )

请问怎么样先按qty由小到大排序,然后按Price由大到小排序。


回复讨论(解决方案)

$a = array(       '000-00'=>array(                                    'qty'=>20,                                    'price'=>200                                  ),       '0001-00'=>array(                                     'qty'=>10,                                    'price'=>100                                  ),      '0002-00'=>array(                                      'qty'=>30,                                     'price'=>50                                 ) );foreach($a as $k=>$v) {  $qty[] = $v['qty'];  $price[] = $v['price'];}array_multisort($qty, $price, SORT_DESC, $a);print_r($a);
Copy after login
Copy after login
Array(    [0001-00] => Array        (            [qty] => 10            [price] => 100        )    [000-00] => Array        (            [qty] => 20            [price] => 200        )    [0002-00] => Array        (            [qty] => 30            [price] => 50        ))
Copy after login
Copy after login

$a = array(       '000-00'=>array(                                    'qty'=>20,                                    'price'=>200                                  ),       '0001-00'=>array(                                     'qty'=>10,                                    'price'=>100                                  ),      '0002-00'=>array(                                      'qty'=>30,                                     'price'=>50                                 ) );foreach($a as $k=>$v) {  $qty[] = $v['qty'];  $price[] = $v['price'];}array_multisort($qty, $price, SORT_DESC, $a);print_r($a);
Copy after login
Copy after login
Array(    [0001-00] => Array        (            [qty] => 10            [price] => 100        )    [000-00] => Array        (            [qty] => 20            [price] => 200        )    [0002-00] => Array        (            [qty] => 30            [price] => 50        ))
Copy after login
Copy after login

这个函数真方便!

请问子数组再多几个是不是也可以,多几个后好像不行了

array(
       '000-00'=>array(
                                    'qty'=>20,
                                    'price'=>200,
                                    ‘status’=>1,
                                    'lirun'=>0.21,
                                    'name'=>'sdff',
                                  ),
       '0001-00'=>array(
                                     'qty'=>10,
                                    'price'=>100,
                                     ‘status’=>1,
                                    'lirun'=>0.22,
                                    'name'=>'erw',
                                  ),
      '0002-00'=>array(
                                      'qty'=>30,
                                     'price'=>50,
                                      ‘status’=>1,
                                    'lirun'=>0.23,
                                    'name'=>'sdfd',
                                 )

 )

可以了,原来变量名要跟数组里面的名称要一样才行

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template