网站首页 > 博客文章 正文
第一种方法:
$b = array(
array('name'=>'北京','nums'=>'200'),
array('name'=>'上海','nums'=>0),
array('name'=>'广州','nums'=>'50'),
array('name'=>'深圳','nums'=>'70')
);
$a = array();
//取出数组中要排序的值放置新数组中
foreach($b as $key=>$val){
//去除掉值为0的数据
if($val['nums']){
$a[] = $val['nums'];
}
}
// var_dump($a);
//对新数组进行排序 很重要 如果不排序下面的循环赋值还是没有顺序
sort($a);
// var_dump($a);
//键值互换
$a = array_flip($a);
$result = array();
//循环原数组
foreach($b as $k=>$v){
//找到原数组中的数值
$temp1 = $v['nums'];
//过滤掉为0的值
if($temp1){
//通过原数组中的数值查询出他的下标
$temp2 = $a[$temp1];
//result[2]=200; result[0]=50; .......
$result[$temp2] = $v;
}
}
//这里还要把$result重新以键的大小进行排序
ksort($result);
var_dump($result);
第二种方法:
//把数组的值重新付给一个新数组
foreach ($b as $key => $value) {
$rating[$key] = $value['nums'];
}
//通过PHP系统函数对数组进行排序 正序 倒序都可以
// array_multisort($rating, SORT_DESC, $b);
array_multisort($rating, SORT_ASC, $b);
//输出排序好后的数组
var_dump($b);
重要提示:
如果你想要把数据进行json_encode 一定要注意当从大到小排序时json会自动增加下标,可能导致前台无法使用该json串,所以从新对数组排下序即可。(使用第二种方法自动排序了不需要再排序)
如:这个json串前端有可能解析不了{"2":{"name":"\u5317\u4eac","nums":"200"},"1":{"name":"\u6df1\u5733","nums":"70"},"0":{"name":"\u5e7f\u5dde","nums":"50"}}
一定要去掉变成下面这种。
[{"name":"\u5e7f\u5dde","nums":"50"},{"name":"\u6df1\u5733","nums":"70"},{"name":"\u5317\u4eac","nums":"200"}]
//数组从新排序
$i=0;
foreach($result as $v){
$res1[$i]=$v;
$i++;
}
die(json_encode($res1));
就因为这个序号导致我查询好久json串不能使用,只要去掉序号即可,这里给大家说一下,避免大家入坑。希望对大家有所帮助。
作者:吾林爱分享
猜你喜欢
- 2024-09-18 PHP 解决json中文自动转换Unicode编码问题
- 2024-09-18 解锁数据存储的新维度:探索 PostgreSQL 中的JSON和数组特性!
- 2024-09-18 php读取数据库数据,并以json格式返回数据
- 2024-09-18 超详细的mysql数据库json字段类型语法大全
- 2024-09-18 从零学编程-JSON处理(json怎么学)
- 2024-09-18 灵活导出:如何将Excel数据转换为JSON对象格式
- 2024-09-18 如何把destoon数据生成json(如何在excel中随机生成一定范围内的数据)
- 2024-09-18 JSON概念(json基础知识)
- 2024-09-18 php返回json数据中文显示的问题(php返回json数据中文显示的问题怎么解决)
- 2024-09-18 javascript把二维数组转为json格式的字符串代码
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)