加入收藏 | 设为首页 | 会员中心 | 我要投稿 怀化站长网 (https://www.0745zz.cn/)- 语音技术、云资源管理、物联设备、云计算、决策智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php 二维数组按指定的键值排序

发布时间:2022-07-24 10:20:02 所属栏目:PHP教程 来源:互联网
导读:以前我们有讲过各种php数组排序的方法,同时php也提供了大量的数据排序函数,sort(),asort(),arsort()等,下面我来给各位同学介绍二维数组按指定的键值排序的方法,具体实例代码如下: /*二维数组按指定的键值排序*/ function array_sort($array,$keys,$type=asc)
  以前我们有讲过各种php数组排序的方法,同时php也提供了大量的数据排序函数,sort(),asort(),arsort()等,下面我来给各位同学介绍二维数组按指定的键值排序的方法,具体实例代码如下:
 
  /*二维数组按指定的键值排序*/
  function array_sort($array,$keys,$type='asc'){
   if(!isset($array) || !is_array($array) || emptyempty($array)){
    return '';
   }
   if(!isset($keys) || trim($keys)==''){
    return '';
   }
   if(!isset($type) || $type=='' || !in_array(strtolower($type),array('asc','desc'))){
    return '';
   }
   $keysvalue=array();
   foreach($array as $key=>$val){
    $val[$keys] = str_replace('-','',$val[$keys]);
    $val[$keys] = str_replace(' ','',$val[$keys]);
    $val[$keys] = str_replace(':','',$val[$keys]);
    $keysvalue[] =$val[$keys];
   }
   asort($keysvalue); //key值排序
   reset($keysvalue); //指针重新指向数组第一个
   foreach($keysvalue as $key=>$vals) {
    $keysort[] = $key;
   }
   $keysvalue = array();
   $count=count($keysort);
   if(strtolower($type) != 'asc'){
    for($i=$count-1; $i>=0; $i--) {
     $keysvalue[] = $array[$keysort[$i]];
    }
   }else{
    for($i=0; $i<$count; $i++){
     $keysvalue[] = $array[$keysort[$i]];
    }
   }
   return $keysvalue;
  }
  使用方法,代码如下:
 
  $a=array(
  1=>array(
  id=>1,
  price=>'79',
  ),
  2=>array(
  id=>1,
  price=>'68',
  ),
  );
  就使用:array_sort($a,'price');
 
  php数组排序函数
 
  sort  (&$arr[,fruits])  对数组进行从低到高排序,并赋予新的键名 返回bool
 
  rsort  (&$arr[,fruits]) 对数组进行逆向排序,并赋予新的键名
 
  asort (&$arr[,fruits]) 对数组进行排序,并保持索引不变
 
  arsort(&$arr[,fruits]) 对数组进行逆向排序,并保持索引不变
 
  ksort (&$arr [,fruits]) 对数组按照键名进行排序
 
  krsort(&$arr [,fruits]) 对组数按照键名进行逆向排序
 
  natsort(&$arr)  对数组键值进行‘自然排序法’按照长度,字母排序等
 
  natcasesort(&$arr) 对数组进行不区分大小写的‘自然排名’
 
  usort (&$arr,cmp_function ) 用户自定义函数对一个数组进行排序,重新排列键名
 
  uksort (&$arr,cmp_function ) 用户自定义函数对一个数组进行键名排序
 
  uasort (&$arr,cmp_function) 用户自定义函数对数组进行排序 并保持索引不变
 
  array_multisort($arr,mixed) 第二个参数是可以根据值改变排序行为
 
  SORT_REGULAR 正常比较单元 SORT_NUMERIC 单元被作为数字来比较
 
  SORT_STRING 单元被作为字符串来比较 SROT_LOCALE_STRING 根据当前的local 设置来把单元当做字符串比较

(编辑:怀化站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读