Home  >  Article  >  Backend Development  >  php multidimensional array sorting

php multidimensional array sorting

伊谢尔伦
伊谢尔伦Original
2016-11-29 10:32:371310browse

/*
  function:二维数组按指定的键值排序
  $array=array(
  0=>array('id'=>8,'username'=>'phpcn'),
  1=>array('id'=>9,'username'=>'com'),
  2=>array('id'=>5,'username'=>'www')
  );
   现在需要将这个二维数组按id升序排列,则:
  
  array_sort($array,'id','asc');
  
*/

 public function array_sort($array,$keys,$type='asc'){
      if(!isset($array) || !is_array($array) || empty($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;
    }


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn