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

函数代码:

/*
function:二维数组按指定的键值排序
author:www.111cn.net
*/
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;
}

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

$array=array(
0=>array(‘id’=>8,’username’=>’phpernote’),
1=>array(‘id’=>9,’username’=>’com’),
2=>array(‘id’=>5,’username’=>’www’)
);

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

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论