zoukankan      html  css  js  c++  java
  • array_multisort 对关联数组进行排序的问题 PHP

    我们在php的数组操作中经常用到对数组进行排序的问题,这里说的是对关联数组进行排序
    需要用到函数 array_multisort 。
    array_multisort(array_column($arr, 'weight'),SORT_NUMERIC, SORT_ASC, $arr);   // 对关联数组 $arr  将键列'weight'转换为数字进行升序排序
    SORT_NUMERIC  // 转换为数字排序
    SORT_STRING  // 转换为文本排序
    SORT_ASC     // 升序
    SORT_DESC    // 降序

    示例:
    原关联数组:
    $data[] = array('volume' => 'id100343', 'weight' => '4');
    $data[] = array('volume' => 'id100212', 'weight' => '1');
    $data[] = array('volume' => 'id104104', 'weight' => '10');
    var_dump($data);

    按照weight进行排序(数字方式SORT_NUMERIC):
    array_multisort(array_column($data, 'weight'),SORT_NUMERIC, SORT_ASC, $data); 

    输出结果:
    array(3) {
      [0]=>
      array(2) {
        ["volume"]=>
        string(8) "id100212"
        ["weight"]=>
        string(1) "1"
      }
      [1]=>
      array(2) {
        ["volume"]=>
        string(8) "id100343"
        ["weight"]=>
        string(1) "4"
      }
      [2]=>
      array(2) {
        ["volume"]=>
        string(8) "id104104"
        ["weight"]=>
        string(2) "10"
      }
    }
    按照weight进行排序(文本方式SORT_STRING):
    array_multisort(array_column($data, 'weight'),SORT_STRING, SORT_ASC, $data); 
    array(3) {
      [0]=>
      array(2) {
        ["volume"]=>
        string(8) "id100212"
        ["weight"]=>
        string(1) "1"
      }
      [1]=>
      array(2) {
        ["volume"]=>
        string(8) "id104104"
        ["weight"]=>
        string(2) "10"
      }
      [2]=>
      array(2) {
        ["volume"]=>
        string(8) "id100343"
        ["weight"]=>
        string(1) "4"
      }
    }

    需要注意10作为数字和文本的区别。
  • 相关阅读:
    gradle build scan 插件使用
    gradle 配置java 项目maven 依赖
    gradle 插件
    gradle java 简单项目使用
    gradle 命令行
    gradle wrapper 简单使用
    gradle 安装试用
    linux 使用asciinema 进行命令行屏幕录制共享
    ansible安装基本使用
    ansible playbook 使用
  • 原文地址:https://www.cnblogs.com/mywebnumber/p/5552596.html
Copyright © 2011-2022 走看看