请问数组怎么多条件排序
'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);
Array( [0001-00] => Array ( [qty] => 10 [price] => 100 ) [000-00] => Array ( [qty] => 20 [price] => 200 ) [0002-00] => Array ( [qty] => 30 [price] => 50 ))
$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);
Array( [0001-00] => Array ( [qty] => 10 [price] => 100 ) [000-00] => Array ( [qty] => 20 [price] => 200 ) [0002-00] => Array ( [qty] => 30 [price] => 50 ))这个函数真方便!
请问子数组再多几个是不是也可以,多几个后好像不行了
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',
)
)
可以了,原来变量名要跟数组里面的名称要一样才行