PHP如何根据数组中的键值进行排序
主要是使用PHP的排序函数,asort()和arsort()。
为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数
<?php
$array = array(
array('name'=>'aa','price'=>),
array('name'=>'bb','price'=>),
array('name'=>'cc','price'=>),
array('name'=>'dd','price'=>),
array('name'=>'ee','price'=>),
array('name'=>'ff','price'=>),
array('name'=>'gg','price'=>)
);
function arr_sort($array,$key,$order="asc"){ //asc是升序 desc是降序
$arr_nums=$arr=array();
foreach($array as $k=>$v){
$arr_nums[$k]=$v[$key];
}
if($order=='asc'){
asort($arr_nums);
}else{
arsort($arr_nums);
}
foreach($arr_nums as $k=>$v){
$arr[$k]=$array[$k];
}
print_r($arr);
}
arr_sort($array,'price');
在PHP中,内置一个排序的函数 array_multisort(),可以参考上一篇的数组排序
<?php
$array = array(
array('name'=>'aa','price'=>),
array('name'=>'bb','price'=>),
array('name'=>'cc','price'=>),
array('name'=>'dd','price'=>),
array('name'=>'ee','price'=>),
array('name'=>'ff','price'=>),
array('name'=>'gg','price'=>)
);
//方法一
function arr_sort($array,$key,$order="desc"){ //asc是升序 desc是降序
$arr_nums=$arr=array();
foreach($array as $k=>$v){
$arr_nums[$k]=$v[$key];
}
if($order=='asc'){
asort($arr_nums);
}else{
arsort($arr_nums);
}
foreach($arr_nums as $k=>$v){
$arr[$k]=$array[$k];
}
print_r($arr);
}
arr_sort($array,'price'); //方法二 foreach ( $array as $key => $row ){
$name[$key] = $row ['name'];
$price[$key] = $row ['price'];
}
array_multisort($price, SORT_ASC, $name, SORT_DESC, $array);
print_r($array);
PHP如何根据数组中的键值进行排序的更多相关文章
- PHP中如何对二维数组按某个键值进行排序
$arr=[ array( 'name'=>'张三', 'age'=>28 ), array( 'name'=> ...
- php对数组中指定键值排序
function array_sort($arr,$keys,$type='asc'){ $keysvalue = $new_array = array(); foreach ($arr as $k= ...
- 更好列表页中一个航班.先unset删除数组中一个键值对,再追加,最后按键排序
<?php $arr = array( '0' => array('item' => array( 'aa' => 'aaa', 'bb' => 'bbb' )), '1 ...
- js从一个对象数组中根据属性值大小排序
<script type="text/javascript"> var sdts = [ {name:"小明",age:30}, {name:&qu ...
- JavaScript——根据数组中的某个值进行排序
我这里是根据次数进行倒叙,可根据自己情况进行修改 function sortKey(array,key){ return array.sort(function(a,b){ var x = a[key ...
- php中的常用数组函数(五)(数组中获取键名集合)
array_keys($arr, $search_value, $strict); --数组中获取键名的集合. //参数1 要检索的数组:参数2 要检索的键值 默认NULL: 参数3 是否严格比较(= ...
- php合并数组并保留键值的方法
答案:使用 + 连接两个数组,替换array_merge()函数. php合并数组,一般会使用array_merge方法. array_merge — 合并一个或多个数组 array array_me ...
- PHP 根据配置转换数组中的键名 方便给前端的时候改键名
/** * 根据配置转换数组中的键名 * @param array $data 数据,必须为二维数组格式 [0=>[]] * @param array $keyNameMapArr 键名转换配置 ...
- PHP中获取数组中单列的值
PHP中获取数组中单列的值如下: 利用PHP中的数组函数 array_column():返回数组中某个单列的值.(PHP 5.5+适用) 语法: array_column(array,column_k ...
随机推荐
- Mysql配置文件详解 my.cof
Mysql配置文件详解 # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/ ...
- ansible介绍与安装
一.什么是ansible ansible是python中一套模块,系统中的一套自动化工具,可以用来作系统管理.自动化命令等任务. 二.ansible优势 .ansible是Python中一套完整的自动 ...
- Java 面试知识点汇总
OOP:(Object Oriented Programming )面向对象编程 重用性.灵活性和扩展性 高内聚.低耦合 面向过程编程与面向对象编程的区别:举例,自己做饭吃与去饭馆吃,去饭馆只需要知道 ...
- ZPL语言说明文档
■格式命令(format commands) 以︿开始 用于设定标签格式与数据 多条格式指令按顺序执行 ■控制指令(control commands) 以~开始 迫使打印机立即执行某一个指令的操作 可 ...
- meshconverters
https://github.com/RobotLocomotion/meshConverters meshconverters $ mkdir build && cd build $ ...
- vscode安装dlv插件报错:There is no tracking information for the current branch.
vscode安装dlv插件报错:There is no tracking information for the current branch. https://blog.csdn.net/a7859 ...
- mybatis常用方法总结
mybatis的强大特性之一就是动态SQL.我们在写复杂查询的时候,会发现复杂查询包括了各种各样的判断,我们很难一鼓作气的写出完美的查询.动态SQL语句可以帮助我们拼接不同的SQL语句,而已让我们的代 ...
- u盘安装Linux系统详细教程
2012-05-06 02:30:44 分类: LINUX 想不想体验一下Linux下呢?刻盘太浪费钱,而U盘却可以多次利用.本文就是要介绍如何通过U盘安装Linux系统的.只要用Universal- ...
- es学习-基础增删改查
创建库 插入数据 修改文档: 查询文档: 删除文档:
- phpstury 升级mysql5.7
今天在往本地导数据表的时候老是报错: [Err] 1294 - Invalid ON UPDATE clause for '字段名' column 报错的数据表字段: `字段名` datetime D ...