指定されたキー値で 2 次元配列を並べ替えます。
<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>
次に、この 2 次元配列を ID で昇順に並べ替える必要があります。
array_sort($array,'id','asc');