搜索
查看: 3244|回复: 1
打印 上一主题 下一主题

[web前端开发] PHP二维数组排序 按照 指定项的值排序

[复制链接]
跳转到指定楼层
楼主
发表于 2013-2-23 17:19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在PHP中我们对一维数组排序可以用sort(),asort(),arsort()等函数进行排序,但是PHP二维数组进行自定义排序可以使用以下函数。

演示代码:
[code=Php width=740px]
<?php
$temp = array(
        array('name'=>'ipad','brand'=>'苹果','price'=>3500),
        array('name'=>'thinkpad','brand'=>'联想','price'=>4800),
        array('name'=>'电动车','brand'=>'绿源','price'=>2800),
        array('name'=>'私家车','brand'=>'凯迪拉克','price'=>680000),
        array('name'=>'洗衣机','brand'=>'海尔','price'=>4500),
        array('name'=>'手机','brand'=>'小米','price'=>1999),
        array('name'=>'冰箱','brand'=>'海尔','price'=>6000)
);
$ShoppingList = array_sort($temp ,'price','asc');
print_r($ShoppingList);


function array_sort($arr,$keys,$type){
        $keysvalue = $new_array = array();
        foreach ($arr as $k=>$v){
                $keysvalue[$k] = $v[$keys];
        }
        if($type == 'asc'){
                asort($keysvalue);
        }else{
                arsort($keysvalue);
        }
        reset($keysvalue);
        foreach ($keysvalue as $k=>$v){
                $new_array[$k] = $arr[$k];
        }
        return $new_array;
}
?>
[/code]
运行结果:
[code=Php width=740px]Array
(
    [5] => Array
        (
            [name] => 手机
            [brand] => 小米
            [price] => 1999
        )
    [2] => Array
        (
            [name] => 电动车
            [brand] => 绿源
            [price] => 2800
        )
    [0] => Array
        (
            [name] => ipad
            [brand] => 苹果
            [price] => 3500
        )
    [4] => Array
        (
            [name] => 洗衣机
            [brand] => 海尔
            [price] => 4500
        )
    [1] => Array
        (
            [name] => thinkpad
            [brand] => 联想
            [price] => 4800
        )
    [6] => Array
        (
            [name] => 冰箱
            [brand] => 海尔
            [price] => 6000
        )
    [3] => Array
        (
            [name] => 私家车
            [brand] => 凯迪拉克
            [price] => 680000
        )
)[/code]
上面是对$array这个二维数组按照'price'从低到高的排序。
沙发
发表于 2015-5-12 16:36:02 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表