当前位置:Gxlcms > PHP教程 > 二维数组按指定的键值排序

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

时间:2021-07-01 10:21:17 帮助过:14人阅读

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

  1. <p>/*</p>function:二维数组按指定的键值排序<br>author:www.scutephp.com<br>*/<br>function array_sort($array,$keys,$type='asc'){<br>
  2. if(!isset($array) || !is_array($array) || empty($array)){<br>
  3. return '';<br>
  4. }<br>
  5. if(!isset($keys) || trim($keys)==''){<br>
  6. return '';<br>
  7. }<br>
  8. if(!isset($type) || $type=='' || !in_array(strtolower($type),array('asc','desc'))){<br>
  9. return '';<br>
  10. }<br>
  11. $keysvalue=array();<br>
  12. foreach($array as $key=>$val){<br>
  13. $val[$keys] = str_replace('-','',$val[$keys]);<br>
  14. $val[$keys] = str_replace(' ','',$val[$keys]);<br>
  15. $val[$keys] = str_replace(':','',$val[$keys]);<br>
  16. $keysvalue[] =$val[$keys];<br>
  17. }<br>
  18. asort($keysvalue); //key值排序<br>
  19. reset($keysvalue); //指针重新指向数组第一个<br>
  20. foreach($keysvalue as $key=>$vals) {<br>
  21. $keysort[] = $key;<br>
  22. }<br>
  23. $keysvalue = array();<br>
  24. $count=count($keysort);<br>
  25. if(strtolower($type) != 'asc'){<br>
  26. for($i=$count-1; $i>=0; $i--) {<br>
  27. $keysvalue[] = $array[$keysort[$i]];<br>
  28. }<br>
  29. }else{<br>
  30. for($i=0; $i<$count; $i++){<br>
  31. $keysvalue[] = $array[$keysort[$i]];<br>
  32. }<br>
  33. }<br>
  34. return $keysvalue;<br><p>}</p>

例如有下列这样一个数组:

  1. <p>$array=array(</p>
  2. 0=>array('id'=>8,'username'=>'scutephp'),<br>
  3. 1=>array('id'=>9,'username'=>'com'),<br>
  4. 2=>array('id'=>5,'username'=>'www')<br><p>);</p>

现在需要将这个二维数组按id升序排列,则:

  1. array_sort($array,'id','asc');

人气教程排行