php 对数组按某个字段进行排序】的更多相关文章

不多废话 直接代码 /** * @name 排序 按照数组的某个字段值排序 * @param $array 排序数组 $field 排序字段 $direction 排序顺序 * @author wanglisong@aldwx.com * @date 2017-03-09 */ private function sort_array($array,$field,$direction) { if($direction == 'desc') { $direction = 'SORT_DESC'; }…
工作中用到了一个相关的问题,搜索了百度有好多种方法,但是不同方法对应的函数不同,试了几个发现还是下面这个比较好用: array_multisort($sortarray,SortRank,$sortlist) $sortarray是用来存储排序字段的数组,SortRank是排序条件,有以下两种: 1.SORT_ASC - 默认,按升序排列.(A-Z) 2.SORT_DESC - 按降序排列.(Z-A) $sortlist是需要排序的数组,以遇到的问题为例: list = [{"name"…
想要实现二维数组中根据某个字段排序,一般可以通过数组循环对比的方式实现.这里介绍一种更简单的方法,直接通过PHP函数实现.array_multisort() :可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序.详细介绍可参考PHP手册:https://www.php.net/manual/zh/function.array-multisort.php 实例: 1.单个字段排序: $data = [ ['id' => 1, 'name' => '张三', 'sort' =&…
//$arrays 需要排序的数组,$sort_key 需要排序的键名称 function my_sort($arrays,$sort_key,$sort_order=SORT_DESC,$sort_type=SORT_NUMERIC ){ if(is_array($arrays)){ foreach ($arrays as $array){ if(is_array($array)){ $key_arrays[] = $array[$sort_key]; }else{ return false;…
$allItem = [ ["id"=>10,"updated_at"=>"2018-11-01"], ["id"=>88,"updated_at"=>"2018-10-05"], ["id"=>33,"updated_at"=>"2018-10-25"], ]; array_multisor…
function array_sort($arr ,$keys,$order=0){ if(!is_array($arr)){ return false; } $keysvalue=array(); foreach ($arr as $key=>$val){ $keysvalue[$key]=$val[$keys]; } if($order==0){ asort($keysvalue); }else{ arsort($keysvalue); } foreach ( $keysvalue as $…
二维数组根据某个字段排序有两种办法,一种是通过sort自己写代码,一种是直接用array_multisort排序函数 一. 手写arraysort PHP的一维数组排序函数: sort  对数组的值按照升序排列(rsort降序),不保留原始的键 ksort 对数组的键按照升序排列(krsort降序) 保留键值关系 asort 对数组的值按照升序排列(arsort降序),保留键值关系 方法: 取出要排序的值组成值数组(为一维数组),按要求对值进行排序(保持键值关系),遍历值数组,按照键对应赋值给结…
//准备 二维数组 //按一个字段排序 foreach($rank as $key=>$val){ $dos[$key] = $val['timelength']; } array_multisort($dos,SORT_ASC,$rank); var_dump($rank); //按两个字段先后排序 foreach($rank as $key=>$val){ $dos[$key] = $val['timelength']; $ds[$key] = $val['join_time']; } a…
/** * 二维数组根据某个字段按指定排序方式排序 * @param $arr array 二维数组 * @param $field string 指定字段 * @param int $sort_order string SORT_ASC 按照上升顺序排序, SORT_DESC 按照下降顺序排序(具体请参考array_multisort官方定义) * @param int $sort_flags string 排序类型标志(具体请参考array_multisort官方定义) * @return…
/** * 按照二维数组中某个指定的某个字段进行排序 * @param $array 需要被排序的数组 * @param $flag 排序的标志 1,SORT_DESC 降序 2,SORT_ASC 升序 * @param int $range * @return array */function assortArray2($array,$flag,$keyword){ $sort = array( 'direction' => $flag, //排序顺序标志 1 ,SORT_DESC 降序:2…