haozhongyang 发表于 2015-7-8 17:22:04

array_multisort 二维数组指定键值排序

本帖最后由 haozhongyang 于 2015-7-8 17:26 编辑

测试数据data_list如下,需要按照sale_amount, amount 倒序

array (
0 =>
array (
    'name' => '面包',
    'sale_amount' => 1,
    'amount' => 1,
),
1 =>
array (
    'name' => '牛奶',
    'sale_amount' => 10,
    'amount' => 5,
),
2 =>
array (
    'name' => '火腿',
    'sale_amount' => 6,
    'amount' => 2,
),
3 =>
array (
    'name' => '鸡肉',
    'sale_amount' => 12,
    'amount' => 1,
),
4 =>
array (
    'name' => '米饭',
    'sale_amount' => 6,
    'amount' => 6,
),
)
使用array_multisort函数
foreach ($data_list as $k => $v) {
    $sale_amount[$k] = $v['sale_amount']; // 销售数量
    $amount[$k] = $v['amount']; // 库存数量
}
array_multisort($sale_amount, SORT_DESC, $amount, SORT_DESC, $data_list);结果array (
0 =>
array (
    'name' => '鸡肉',
    'sale_amount' => 12,
    'amount' => 1,
),
1 =>
array (
    'name' => '牛奶',
    'sale_amount' => 10,
    'amount' => 5,
),
2 =>
array (
    'name' => '米饭',
    'sale_amount' => 6,
    'amount' => 6,
),
3 =>
array (
    'name' => '火腿',
    'sale_amount' => 6,
    'amount' => 2,
),
4 =>
array (
    'name' => '面包',
    'sale_amount' => 1,
    'amount' => 1,
),
)
页: [1]
查看完整版本: array_multisort 二维数组指定键值排序