mz

php 将数组按某个值排序

例子:

$userInfo=$this->user->getInfoAll();  //获取用户所有信息

数据库返回格式:

array(
    "1"=>[
         "name"    =>   "张三",
         "age"       =>    "18",
    ],
    "1"=>[
         "name"    =>   "李四",
         "age"       =>    "24",
    ],
)

//但是有时我们需要用年龄排序 这时就可以使用array_column函数了

//在此之前博主一直使用foreach来重组,不仅要多写许多无用的代码,而且性能也低

array_multisort(array_column($UserInfo,'age'),SORT_DESC,$UserInfo); //注意该函数没有返回值

 

 

array_column语法:

array_column(array,column_key,index_key);
参数 描述
array 必需。规定要使用的多维数组(记录集)。
column_key 必需。需要返回值的列。

可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。

该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。

index_key 可选。用作返回数组的索引/键的列。

array_multisort语法:

array_multisort(array1,sorting order,sorting type,array2,array3...)
参数 描述
array1 必需。规定数组。
sorting order 可选。规定排列顺序。可能的值:

  • SORT_ASC – 默认。按升序排列 (A-Z)。
  • SORT_DESC – 按降序排列 (Z-A)。
sorting type 可选。规定排序类型。可能的值:

  • SORT_REGULAR – 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
  • SORT_NUMERIC – 把每一项作为数字来处理。
  • SORT_STRING – 把每一项作为字符串来处理。
  • SORT_LOCALE_STRING – 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
  • SORT_NATURAL – 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
  • SORT_FLAG_CASE – 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
array2 可选。规定数组。
array3 可选。规定数组。
码字很辛苦,转载请注明来自明志博客《php 将数组按某个值排序》

评论

  1. 院长 #1

    耳 :razz: :oops: 朵梵蒂冈

    回复
    2018-12-3