PHP中文排序

代码中一般使用UTF-8字符编码,

对中文进行排序一般使用iconv()函数将UTF-8字符编码的中文变成GBK2312,

为了让可以识别的文字多一些,把字符编码变成变成GBK,

为了避免字符编码转换过程中的错误,使用iconv()时加上//IGNORE。

现在有一个数组,先按照分类名称排序再按照商品名称排序。

[
    {
        "category": "手机",
        "name": "华为"
    },
    {
        "category": "电脑",
        "name": "苹果"
    },
    {
        "category": "平板",
        "name": "三星"
    },
    {
        "category": "电脑",
        "name": "戴尔"
    },
    {
        "category": "平板",
        "name": "苹果"
    },
    {
        "category": "手机",
        "name": "苹果"
    }
]

 

 

<pre>Array
(
    [0] => Array
        (
            [commodity_id] => 9708
            [actual_amount] => 3
            [channel_type] => 1
            [name] => 陈鱿鱼
            [category_id2] => 721
            [category_name2] => 虾贝鱿类
            [agent_id] => 0
            [unit_convert] => N
            [unit_num] => 1.00
            [parent_id] => 9708
            [amount] => 3
            [one_unit_need_convert] => 1
            [convert_amount] => 3
            [commodity_inout_id] => 9708
            [existing] => 0
        )

    [1] => Array
        (
            [commodity_id] => 9707
            [actual_amount] => 1
            [channel_type] => 1
            [name] => 鱿鱼头
            [category_id2] => 721
            [category_name2] => 虾贝鱿类
            [agent_id] => 0
            [unit_convert] => N
            [unit_num] => 1.00
            [parent_id] => 9707
            [amount] => 1
            [one_unit_need_convert] => 1
            [convert_amount] => 1
            [commodity_inout_id] => 9707
            [existing] => 0
        )

    [2] => Array
        (
            [commodity_id] => 10937
            [actual_amount] => 2
            [channel_type] => 1
            [name] => 海南千禧圣女果
            [category_id2] => 772
            [category_name2] => 仁果类
            [agent_id] => 0
            [unit_convert] => N
            [unit_num] => 1.00
            [parent_id] => 10937
            [amount] => 2
            [one_unit_need_convert] => 1
            [convert_amount] => 2
            [commodity_inout_id] => 10937
            [existing] => 0
        )

)
 

usort($v,function($a,$b){
                if ($a['category_id2'] == $b['category_id2']) {
                    if($a['name'] == $b['name']){
                        return 0;
                    }
                    return $a['name'] > $b['name'] ? 1 : -1;
                }
                return $a['category_id2'] > $b['category_id2'] ? 1 : -1;
            });

 

 

PHP中文排序

二维数组
array(6) {
  [0]=>
  array(8) {
    ["id"]=>
    string(4) "9940"
    ["name"]=>
    string(6) "茭白"
    ["num"]=>
    string(1) "6"
    ["pinyin"]=>
    string(7) "JIAOBAI"
    ["unit_price"]=>
    string(1) "0"
    ["actual_num"]=>
    string(1) "6"
    ["category2_id"]=>
    string(3) "694"
    ["category2_name"]=>
    string(6) "茄果"
  }
  [1]=>
  array(8) {
    ["id"]=>
    string(4) "9552"
    ["name"]=>
    string(6) "凉薯"
    ["num"]=>
    string(1) "1"
    ["pinyin"]=>
    string(25) "BENDILIANGSHUBENDI,BDLSBD"
    ["unit_price"]=>
    string(1) "0"
    ["actual_num"]=>
    string(1) "1"
    ["category2_id"]=>
    string(3) "695"
    ["category2_name"]=>
    string(6) "根茎"
  }
  [2]=>
  array(8) {
    ["id"]=>
    string(4) "9928"
    ["name"]=>
    string(6) "扁豆"
    ["num"]=>
    string(1) "5"
    ["pinyin"]=>
    string(7) "BIANDOU"
    ["unit_price"]=>
    string(1) "0"
    ["actual_num"]=>
    string(1) "5"
    ["category2_id"]=>
    string(3) "696"
    ["category2_name"]=>
    string(6) "鲜豆"
  }
  [3]=>
  array(8) {
    ["id"]=>
    string(4) "9573"
    ["name"]=>
    string(9) "水洗姜"
    ["num"]=>
    string(1) "2"
    ["pinyin"]=>
    string(14) "JIANGBENDI,JBD"
    ["unit_price"]=>
    string(1) "0"
    ["actual_num"]=>
    string(1) "2"
    ["category2_id"]=>
    string(3) "697"
    ["category2_name"]=>
    string(24) "葱姜蒜和新鲜调料"
  }
  [4]=>
  array(8) {
    ["id"]=>
    string(4) "9707"
    ["name"]=>
    string(9) "鱿鱼头"
    ["num"]=>
    string(1) "3"
    ["pinyin"]=>
    string(20) "BINGXIANMOYUZI,BXMYZ"
    ["unit_price"]=>
    string(1) "0"
    ["actual_num"]=>
    string(1) "3"
    ["category2_id"]=>
    string(3) "721"
    ["category2_name"]=>
    string(12) "虾贝鱿类"
  }
  [5]=>
  array(8) {
    ["id"]=>
    string(4) "9708"
    ["name"]=>
    string(9) "陈鱿鱼"
    ["num"]=>
    string(1) "4"
    ["pinyin"]=>
    string(14) "BINGXIANYU,BXY"
    ["unit_price"]=>
    string(1) "0"
    ["actual_num"]=>
    string(1) "4"
    ["category2_id"]=>
    string(3) "721"
    ["category2_name"]=>
    string(12) "虾贝鱿类"
  }
}
$flag = [];
        foreach ($commoditys as $key => $value){
            $commoditys[$key]['category2_name'] = iconv('UTF-8', 'GB2312',$value['category2_name']);
            $flag[] = $commoditys[$key]['category2_name'];
        }
        var_dump($flag);
        array_multisort($flag,SORT_ASC,$commoditys);
        foreach ($commoditys as $key => $value){
            $commoditys[$key]['category2_name'] = iconv('GB2312', 'UTF-8',$value['category2_name']);
            $flag[] = $commoditys[$key]['category2_name'];
        }

 

posted @ 2018-05-02 21:30  LiuLiwei  阅读(3381)  评论(0编辑  收藏  举报