利用PHP怎么对二维数组按照指定字段进行排序

  介绍

本篇文章为大家展示了利用PHP怎么对二维数组按照指定字段进行排序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强>遇到问题:把两个数组用PHP自带的<代码> array_merge() 函数合并之后,想按照两个数组中共有的& # 39;post_time& # 39;字段为新数组进行排序

<强>解决办法:强通过查阅官方手册,得知有<代码>对()这个函数,可以对多个数组或多维数组进行排序,返回排序之后的数组,其中字符串键名将被保留,但是数字键名将被重新索引,从0开始,并以1递增。

下面封装了这个函数,便于调用:

/* *   *大敌;二维数组按照指定字段进行排序   ,* @params  array  array 美元;需要排序的数组   ,* @params  string  field 美元;排序的字段   ,* @params  string  sort 美元;排序顺序标志,SORT_DESC 降序;SORT_ASC 升序   ,*/function  arraySequence(数组,美元,美元,,sort 美元;=,& # 39;SORT_DESC& # 39;), {   数组,arrSort 美元;=,();   美元,foreach  (array  as  uniqid 美元;=祝辞,美元行),{   foreach 才能;(row 美元;as  key 美元;=祝辞,美元值),{   ,,arrSort美元($ key)函数[美元],=,美元价值;   ,,}   ,}   ,对(arrSort美元(美元字段),常数($),,美元数组);   ,return 美元数组;   }//测试:   $ arrDemo =,阵列(   数组(& # 39;名字# 39;=祝辞& # 39;杰克# 39;,& # 39;年龄# 39;=祝辞& # 39;22 & # 39;),   数组(& # 39;名字# 39;=祝辞& # 39;汤姆# 39;,& # 39;年龄# 39;=祝辞& # 39;24 & # 39;),   数组(& # 39;名字# 39;=祝辞& # 39;绿色# 39;,& # 39;年龄# 39;=祝辞& # 39;21 & # 39;),   数组(& # 39;名字# 39;=祝辞& # 39;本# 39;,& # 39;年龄# 39;=祝辞& # 39;23 & # 39;),);   arrDemo 美元;=,arraySequence (arrDemo美元,& # 39;年龄# 39;);   print_r ($ arrDemo);

运行结果:

阵列
(
,,,[0]=比;数组
,,,,,,,(
,,,,,,,,,,,[名字]=比;汤姆
,,,,,,,,,,,[时代]=比;24
,,,,,,,)

,,,[1]=比;数组
,,,,,,,(
,,,,,,,,,,,[名字]=比;本
,,,,,,,,,,,[时代]=比;23日
,,,,,,,)

,,,[2]=比;数组
,,,,,,,(
,,,,,,,,,,,[名字]=比;杰克
,,,,,,,,,,,[时代]=比;22日
,,,,,,,)

,,,[3]=比;数组
,,,,,,,(
,,,,,,,,,,,[名字]=比;绿色
,,,,,,,,,,,[时代]=比;21日
,,,,,,,)

<强>新增:按照指定的多个字段排序

/* *   *大敌;二维数组按照指定的多个字段进行排序   ,*   ,*调用示例:sortArrByManyField (arr美元,& # 39;id # 39;, SORT_ASC, & # 39;年龄# 39;,SORT_DESC);   ,*/function  sortArrByManyField () {   ,args 美元;=,func_get_args ();   美元,如果(空(args)) {   return 才能;零;   ,}   ,arr 美元;=,array_shift (args);   ,如果(! is_array (arr)美元){   throw 才能;new 异常(“第一个参数应为数组“);   ,}   ,foreach ($ args  as  key 美元;=祝辞,美元字段){   如果才能(is_string(字段)美元){   ,,temp 美元;=,数组();   ,,foreach (arr 美元;as 美元指数=祝辞,val美元){   ,,,临时美元(美元指数),=,val美元(美元领域);   ,,}   ,,args美元(美元关键),=,临时美元;   ,,}   ,}   ,args[]美元=,,arr美元;//引用值   ,中的call_user_func_array(& # 39;对# 39;,args美元);   ,return 最后一美元(args);   }//测试:   $ arrDemo =,阵列(   数组(& # 39;名字# 39;=祝辞& # 39;杰克# 39;,& # 39;年龄# 39;=祝辞& # 39;22 & # 39;),   数组(& # 39;名字# 39;=祝辞& # 39;汤姆# 39;,& # 39;年龄# 39;=祝辞& # 39;24 & # 39;),   数组(& # 39;名字# 39;=祝辞& # 39;绿色# 39;,& # 39;年龄# 39;=祝辞& # 39;21 & # 39;),   数组(& # 39;名字# 39;=祝辞& # 39;本# 39;,& # 39;年龄# 39;=祝辞& # 39;23 & # 39;),);   arrDemo 美元;=,sortArrByManyField (arrDemo美元,& # 39;年龄# 39;);   print_r ($ arrDemo);

运行结果:

阵列
(
,,,[0]=比;数组
,,,,,,,(
,,,,,,,,,,,[名字]=比;绿色
,,,,,,,,,,,[时代]=比;21日
,,,,,,,)

,,,[1]=比;数组
,,,,,,,(
,,,,,,,,,,,[名字]=比;杰克
,,,,,,,,,,,[时代]=比;22日
,,,,,,,)

,,,[2]=比;数组
,,,,,,,null

利用PHP怎么对二维数组按照指定字段进行排序