排序-php自定义二维数组排序

这篇博客介绍了一个PHP函数array_sort,用于对包含'a'键的二维数组进行排序。函数首先获取'a'键的值并保持原有key,然后根据排序规则(升序或降序)对这些值进行排序,最后重新排列原数组。示例中展示了如何对一个二维数组按'a'键升序排序,并打印排序前后的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原有数组,根据键a的大小对数组$arr进行排序


$arr = [
  ['a'=>19, 'b'=>10],
  ['a'=>12, 'b'=>12],
  ['a'=>13, 'b'=>13],
  ['a'=>21, 'b'=>21],
  ['a'=>6, 'b'=>6],
  ['a'=>7, 'b'=>7],
];

开发思路:

1、获取所有指定列的值,且保持原有key;
2、对获取的指定列的值进行排序,且保持原有key;
3、获取重排后的数组的key;
4、重置原有数组;
//二维数组排序, $arr是数据,$keys是排序的健值,$order是排序规则,0是升序,1是降序

function array_sort ($arr, $keys, $order = 0)
{

    if (!is_array($arr)) {
        return false;
    }

    //1、获取所有指定列的值,且保持原有key;
    $keysvalue = array();

    foreach ($arr as $key => $val) {
        $keysvalue[$key] = $val[$keys];
    }

    //2、对获取的指定列的值进行排序,且保持原有key
    if ($order == 0) {
        asort($keysvalue);
    } else {
        arsort($keysvalue);
    }

    reset($keysvalue);

    //3、获取重排后的数组的key
    foreach ($keysvalue as $key => $vals) {
        $keysort[$key] = $key;
    }

    //4、重置原有数组
    $new_array = array();
    foreach ($keysort as $key => $val) {
        $new_array[] = $arr[$val];
    }
    return $new_array;

}

$arr = [
    ['a' => 19, 'b' => 10],
    ['a' => 12, 'b' => 12],
    ['a' => 13, 'b' => 13],
    ['a' => 21, 'b' => 21],
    ['a' => 6, 'b' => 6],
    ['a' => 7, 'b' => 7],
];

echo '排序前:<br/>';
print_r($arr);
echo '<br/>排序后:<br/>';
print_r(array_sort($arr, 'a', 0));

图片

关注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值