php数组怎么根据其中的一个值进行排序?解决方法
有一个数组如下
我想对其进行一个排序,按照其“sort”的值的大小进行排序,3->4->7。
解决方法如下:
1、首先介绍php的两个方法
方法一:array_column() 返回输入数组中某个单一列的值。php版本 5.5+。
参数 | 描述 |
---|---|
array | 必需。规定要使用的多维数组(记录集)。 |
column_key |
必需。需要返回值的列。 可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。 该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。 |
index_key | 可选。用作返回数组的索引/键的列。 |
例子一:
$cmf_settings = array(
array (
"url" => "img/20191015/5da586020fa6b.jpg",
"alt" => "lunbo2",
"href" => "https://www.baidu.com/",
"sort" => "7"
),
array(
"url" => "img/20191018/5da9783499dec.jpg",
"alt" => "X1300",
"href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/x1300-180.html",
"sort" => "3"
),
array(
"url" => "img/20191018/5da987c81f420.jpg",
"alt" => "S300",
"href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/s300-170.html",
"sort" => "4"
)
); $cmf_arr = array_column($cmf_settings, 'sort');
打印$cmf_arr得到如下结果
方法二:array_multisort() 函数返回一个排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。
array_multisort(‘数组1’, 'SORT_ASC(升序)', '数组2', '数组3', '数组4', '数组5', '数组6');
数组1:进行排序的数组。
SORT_ASC(升序):是对数组1的排序方式。
'数组2', '数组3'......:根据数组1的排序方式对'数组2', '数组3', '数组4', '数组5', '数组6'进行排序。
数组1升序排序: 第二组数据[1] => "3" 位置变成[0] => "3",那么'数组2', '数组3', '数组4', '数组5', '数组6'的第二组数据[1] => "不管是什么数据" 位置变成[0] => "不管是什么数据"。
参数 | 描述 |
---|---|
array1 | 必需。规定数组。 |
sorting order | 可选。规定排列顺序。可能的值:
|
sorting type | 可选。规定排序类型。可能的值:
|
array2 | 可选。规定数组。 |
array3 | 可选。规定数组。 |
例子二:
$cmf_settings = array(
array (
"url" => "img/20191015/5da586020fa6b.jpg",
"alt" => "lunbo2",
"href" => "https://www.baidu.com/",
"sort" => "7"
),
array(
"url" => "img/20191018/5da9783499dec.jpg",
"alt" => "X1300",
"href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/x1300-180.html",
"sort" => "3"
),
array(
"url" => "img/20191018/5da987c81f420.jpg",
"alt" => "S300",
"href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/s300-170.html",
"sort" => "4"
)
);
$cmf_arr = array_column($cmf_settings, 'sort');
array_multisort($cmf_arr, SORT_ASC, $cmf_settings);
打印$cmf_settings得到如下结果,满足需求。
总结:利用 array_column() 把要排序的键值提取出来,在利用array_multisort()对数组进行排序。理解起来有点绕,不过以后的用处会很大的。
如有错误请指出,谢谢。
php数组怎么根据其中的一个值进行排序?解决方法的更多相关文章
- JMeter接口测试-提取动态列表最后一个值的两种方法
前言 在用JMeter做接口测试时,我们经常会遇到,一个接口返回一个json串,在这个json串中,某个节点的值是一个列表,而且这个列表的长度是动态变化的.今天我们来学习两种提取动态列表最后一个值的两 ...
- IIS发布网站浏览之后看到的是文件目录 & Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法 & App_global.asax.pduxejp_.dll”--“拒绝访问。 ”
Q:IIS发布网站浏览之后看到的是文件目录 A:它出现了一个说到.NET4.0 更高框架什么的错误,所以我将 .NTE CRL版本由4.0改为2.0了,改为2.0后就出现了只能浏览文件目录了.改为4. ...
- [代码]--IIS发布网站浏览之后看到的是文件目录 & Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法 & App_global.asax.pduxejp_.dll”--“拒绝访问。 ”
Q:IIS发布网站浏览之后看到的是文件目录 A:它出现了一个说到.NET4.0 更高框架什么的错误,所以我将 .NTE CRL版本由4.0改为2.0了,改为2.0后就出现了只能浏览文件目录了.改为4. ...
- 用链表和数组实现HASH表,几种碰撞冲突解决方法
Hash算法中要解决一个碰撞冲突的办法,后文中描述了几种解决方法.下面代码中用的是链式地址法,就是用链表和数组实现HASH表. he/*hash table max size*/ #define HA ...
- Jquery操作Cookie取值错误的解决方法
使用JQuery操作cookie时 发生取的值不正确,结果发现cookie有四个不同的属性,分享下错误的原因及解决方法. 使用JQuery操作cookie时 发生取的值不正确的问题: 结果发现coo ...
- 浏览器后退按钮导致jquery动态添加的select option值丢失的解决方法
监控浏览器返回功能 判断浏览器返回功能 禁用浏览器的后退按钮 JS禁止浏览器后退键 http://volunteer521.iteye.com/blog/830522/ 浏览器返回功能 判断上一页面来 ...
- MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法
今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...
- asp.net MVC中使用Html.Checkbox提示该字符串未被识别为有效的布尔值错误的解决方法
在asp.net MVC中使用Html.CheckBox提交后出现该字符串未被识别为有效的布尔值错误,或从类型“System.String”到类型“System.Boolean”的参数转换失败. 错误 ...
- 真正解决vbox不能为虚拟电脑打开一个新任务的解决方法
今天小编电脑上出现了一个问题,如上图,经过了一个朋友的帮助终于问题解决了,解决方法: 在每一个中把 红框中打上勾号即可
随机推荐
- J2EE简单的分页器
J2EE项目特别是后台管理,或者一部分前台展示数据比较多,通常需要分页把展示折叠在数据区内. 一般有几种方式来实现分页, 一是官方分页插件,二是自己写,三是网上找(类似于第一种) 这里就介绍第二种, ...
- Chrome 谷歌浏览器安装使用 Postman 和 Sense 插件
博客地址:http://www.moonxy.com 一.前言 Google Chrome 的特点是简洁.快速等.Chrome 支持多标签浏览,每个标签页面都在独立的"沙箱"内运行 ...
- Docker学习之docker常用命令
docker ps -a 表示所有容器 docker pull 获取image docker build 创建image docker run 运行container docker images 列出 ...
- C++基础之string类
string也是属于顺序容器,但是string类很重要且经常使用,因此在这里单独记录. string的操作总结 string(const char *s,int n); //用c字符串s初始化,s应 ...
- Anaconda、TensorFlow安装和Pycharm配置详细教程,亲测有效!
目录 1.Anaconda下载与安装 2.Anaconda安装成功与否测试 3.安装python 4.检查TensorFlow环境添加成功与否 5.TensorFlow安装 6.测试TensorFlo ...
- Codeforces Numbers 题解
这题只需要会10转P进制就行了. PS:答案需要约分,可以直接用c++自带函数__gcd(x,y). 洛谷网址 Codeforces网址 Code(C++): #include<bits/std ...
- jenkins自动化部署项目4 -- 安装和配置jdk、maven、git
Jenkins提供了自动安装jdk,maven,git的功能,在[系统设置-全局工具配置]里,但是我自动安装没反应,因此我是先手工安装和配置它们的环境变量然后再在[系统设置-全局工具配置]里配置: 1 ...
- eclipse导入别的项目后发现jdk版本不一样,该如何解决呢?
当我们导入其他人的项目的时候,发现导入的项目的jdk版本与我们使用电脑上的版本不同,该如何解决呢? 选中项目右键 --> Properties --> Build Path --> ...
- SpringBoot集成Shiro 实现动态加载权限
一.前言 本文小编将基于 SpringBoot 集成 Shiro 实现动态uri权限,由前端vue在页面配置uri,Java后端动态刷新权限,不用重启项目,以及在页面分配给用户 角色 . 按钮 .ur ...
- Maven报错: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp
郁闷了两天,创建maven项目时,eclipse报错:Could not resolve artifact org.apache.maven.archetypes:maven-archetype-we ...