本篇文章为大家展示了利用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怎么对二维数组按照指定字段进行排序