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作为数字和文本的区别。
  • 相关阅读:
    Python Generators vs Iterators
    python staticmethod classmethod
    静态类型、动态类型、强类型以及弱类型语言
    Python串行运算、并行运算、多线程、多进程对比实验
    python字典根据value排序
    解读Python内存管理机制
    两个list 求交集效率对比
    Python error: Unable to find vcvarsall.bat
    max-length兼容ie
    return false 与return true 困惑
  • 原文地址:https://www.cnblogs.com/mywebnumber/p/5552596.html
Copyright © 2011-2022 走看看