• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP多维数组排序array详解

    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;
      }

    PHP数组Array按二维排序,先按第一个字段排序,再按第二个字段排序

      /**
       * Sort array by filed and type, common utility method.
       * @param array $array
       * @param string $filed1
       * @param string $type1 SORT_ASC or SORT_DESC
       * @param string $filed2
       * @param string $type2 SORT_ASC or SORT_DESC
       */
      public function sortByTwoFiled($data, $filed1, $type1, $filed2, $type2)
      {
        if (count($data) = 0) {
          return $data;
        }
        foreach ($data as $key => $value) {
          $temp_array1[$key] = $value[$filed1];
          $temp_array2[$key] = $value[$filed2];
        }
        array_multisort($temp_array1, $type1, $temp_array2, $type2, $data);
        return $users;
      }
    

    sortMultiArray()最多支持3维数组排序,当然可以扩充的,自定义方法重载实现对多维数字的排序,这里的多维是说数据的多个字段。

    使用方法:

    1. sortMultiArray($data, [‘score' => SORT_DESC])

    2. sortMultiArray($data, [‘score' => SORT_DESC, ‘count' => SORT_ASC])

    3. sortMultiArray($data, [‘score' => SORT_DESC, ‘count' => SORT_ASC, ‘name' => SORT_ASC])

    /**
       * Sort multi array by filed and type.
       * @param data $array
       * @param condition $array
       */
      public function sortMultiArray($data, $condition)
      {
        if (count($data) = 0 || empty($condition)) {
          return $data;
        }
        $dimension = count($condition);
        $fileds = array_keys($condition);
        $types = array_values($condition);
        switch ($dimension) {
          case 1:
            $data = $this->sort1Dimension($data, $fileds[0], $types[0]);
            break;
          case 2:
            $data = $this->sort2Dimension($data, $fileds[0], $types[0], $fileds[1], $types[1]);
            break;
          default:
            $data = $this->sort3Dimension($data, $fileds[0], $types[0], $fileds[1], $types[1], $fileds[2], $types[2]);
            break;
        }
        return $data;
      }
    
      public function sort1Dimension($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;
      }
    
      public function sort2Dimension($data, $filed1, $type1, $filed2, $type2)
      {
        if (count($data) = 0) {
          return $data;
        }
        foreach ($data as $key => $value) {
          $sort_filed1[$key] = $value[$filed1];
          $sort_filed2[$key] = $value[$filed2];
        }
        array_multisort($sort_filed1, $type1, $sort_filed2, $type2, $data);
        return $data;
      }
    
      public function sort3Dimension($data, $filed1, $type1, $filed2, $type2, $filed3, $type3)
      {
        if (count($data) = 0) {
          return $data;
        }
        foreach ($data as $key => $value) {
          $sort_filed1[$key] = $value[$filed1];
          $sort_filed2[$key] = $value[$filed2];
          $sort_filed3[$key] = $value[$filed3];
        }
        array_multisort($sort_filed1, $type1, $sort_filed2, $type2, $sort_filed3, $type3, $data);
        return $data;
      }
    

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • PHP基于array_unique实现二维数组去重
    • php数组函数array_push()、array_pop()及array_shift()简单用法示例
    • PHP call_user_func和call_user_func_array函数的简单理解与应用分析
    • php array 转json及java 转换 json数据格式操作示例
    • php利用array_search与array_column实现二维数组查找
    • php使用array_chunk函数将一个数组分割成多个数组
    • PHP array_reverse() 函数原理及实例解析
    上一篇:Ecshop 后台添加新功能栏目及管理权限设置教程
    下一篇:Laravle eloquent 多对多模型关联实例详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP多维数组排序array详解 PHP,多维,数组,排序,array,