首页 >后端开发 >php教程 >二维数组按指定的键值排序

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

WBOY
WBOY原创
2016-06-20 13:02:201028浏览

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

<p>/*</p>function:二维数组按指定的键值排序<br />author:www.scutephp.com<br />*/<br />function array_sort($array,$keys,$type='asc'){<br />	if(!isset($array) || !is_array($array) || empty($array)){<br />		return '';<br />	}<br />	if(!isset($keys) || trim($keys)==''){<br />		return '';<br />	}<br />	if(!isset($type) || $type=='' || !in_array(strtolower($type),array('asc','desc'))){<br />		return '';<br />	}<br />	$keysvalue=array();<br />	foreach($array as $key=>$val){<br />		$val[$keys] = str_replace('-','',$val[$keys]);<br />		$val[$keys] = str_replace(' ','',$val[$keys]);<br />		$val[$keys] = str_replace(':','',$val[$keys]);<br />		$keysvalue[] =$val[$keys];<br />	}<br />	asort($keysvalue); //key值排序<br />	reset($keysvalue); //指针重新指向数组第一个<br />	foreach($keysvalue as $key=>$vals) {<br />		$keysort[] = $key;<br />	}<br />	$keysvalue = array();<br />	$count=count($keysort);<br />	if(strtolower($type) != 'asc'){<br />		for($i=$count-1; $i>=0; $i--) {<br />			$keysvalue[] = $array[$keysort[$i]];<br />		}<br />	}else{<br />		for($i=0; $i<$count; $i++){<br />			$keysvalue[] = $array[$keysort[$i]];<br />		}<br />	}<br />	return $keysvalue;<br /><p>}</p>

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

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

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

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


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn