PHP根据循环数组里的键值从小到大或从大到小排序的函数!
作者:admin 时间:2022-08-15 阅读数:300人
有一组循环数组,里面有距离值,想根据距离排序展示,百度一圈,基本全是冒泡排序的方法
后来经过一次次寻找和自己修改,终于得到了一组挺精简还适合我现在状况的代码
先随便设置一组循环数组:
$list = array(
array("name"=>"北京","nums"=>"200"),
array("name"=>"上海","nums"=>"80"),
array("name"=>"广州","nums"=>"150"),
array("name"=>"深圳","nums"=>"70"),
array("name"=>"电脑屋","nums"=>"55")
);
如下才是真正的代码,我封装成了函数,方便使用
function vrsort($arr){
foreach($arr as $key=>$val){
$a[] = $val["nums"];//这里要注意$val["nums"]不能为空,不然后面会出问题
}
sort($a);//从小到大
//rsort($a);//从大到小
//$a=array_reverse($a);
$a = array_flip($a);
foreach($arr as $k=>$v){
$temp1 = $v["nums"];
$temp2 = $a[$temp1];
$result[$temp2] = $v;
}
ksort($result);
return $result;
}
打印整理后的数组
var_dump(vrsort($list));
结果如下
array(5) { [0]=> array(2) { ["name"]=> string(9) "电脑屋" ["nums"]=> string(2) "55" } [1]=> array(2) { ["name"]=> string(6) "深圳" ["nums"]=> string(2) "70" } [2]=> array(2) { ["name"]=> string(6) "上海" ["nums"]=> string(2) "80" } [3]=> array(2) { ["name"]=> string(6) "广州" ["nums"]=> string(3) "150" } [4]=> array(2) { ["name"]=> string(6) "北京" ["nums"]=> string(3) "200" } }
声明
源码下载不顺利,比如源码在百度网盘的有时会被无故取消等,请联系QQ:46667551
本站大部分下载资源收集于网络,但除特别说明之外,基本全部亲自测试可用!
但由于某些源码的更新迭代,比如微信小程序官方接口的变动等原因,
如时间过长,可能会造成本可以使用的代码出现问题,下载前请斟酌!
本站资源仅供学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。
原文链接:https://www.love0312.com/1564.html,转载请注明出处