搜索

首页  >  问答  >  正文

php - 如何对这样的数组进行排序 求教

**

按照内容2排序

**

<前><代码>数组(5) { [0] => 数组(2){ [“id”]=> 字符串(1)“2” [“内容2”]=> 字符串(2)“XL” } [1]=> 数组(2){ [“id”]=> 字符串(1)“1” [“内容2”]=> 字符串(1)“L” } [2]=> 数组(2){ [“id”]=> 字符串(1)“3” [“内容2”]=> 字符串(3)“XXL” } [3]=> 数组(2){ [“id”]=> 字符串(1)“4” [“内容2”]=> 字符串(1)“L” } [4]=> 数组(2){ [“id”]=> 字符串(1)“5” [“内容2”]=> 字符串(2)“XL” } }
怪我咯怪我咯2832 天前381

全部回复(6)我来回复

  • 阿神

    阿神2017-05-16 13:09:13

    PHP多维数组排序array

    /**
    * Sort array by filed and type, common utility method.
    * @param array $data
    * @param string $sort_filed
    * @param string $sort_type SORT_ASC or SORT_DESC
    */
    public function sortByOneField($data, $filed, $type)
    {
        if (count($data) <= 0) {
            return $data;
        }
        foreach ($data as $key => $value) {
            $temp[$key] = $value[$filed];
        }
        array_multisort($temp, $type, $data);
        return $data;
    }

    回复
    0
  • 習慣沉默

    習慣沉默2017-05-16 13:09:13

    雷雷

    回复
    0
  • 怪我咯

    怪我咯2017-05-16 13:09:13

    衣服尺码没什么规律吧 是不是应该在插入库里的时候按照某种特定顺序编号 取出来的时候再排序

    回复
    0
  • 怪我咯

    怪我咯2017-05-16 13:09:13

    写个冒泡排序不就得了。
    至于 L<XL<XXL<XXL 这种,设置一个 map 映射来比较就是。

    也可以用 usort 来自定义排序逻辑。参考:

    http://php.net/manual/zh/func...

    回复
    0
  • 高洛峰

    高洛峰2017-05-16 13:09:13

    <?php 
    $list = [
        ['id'=>1,'content'=>'L'],
        ['id'=>2,'content'=>'XL'],
        ['id'=>3,'content'=>'XXL'],
        ['id'=>4,'content'=>'M'],
        ['id'=>5,'content'=>'LM'],
        ['id'=>6,'content'=>'XXXL'],
    ];
    
    $size = [
        'XXXL' => 1,
        'XXL' => 2,
        'XL' => 3,
        'L' => 4,
        'M' => 5,
        'LM' => 6,
    ];
    
    $temp = array();
    foreach ($list as $key => $val) {
        $temp[$size[$val['content']]] = $val;
    }
    // print_r($temp);die;
    
    ksort($temp); // 从低到高  krsort 从高到低
    print_r($temp);
    ?>

    随便写了一下,不知道你要的是不是这个样子。

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:09:13

    雷雷

    回复
    0
  • 取消回复