ZFSYS

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

202
/*
function:二维数组按指定的键值排序
*/
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升序排列,则:

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



  • 没有任何评论
最新帖子
[站长推荐] 一些站长/创业者使用的工具推荐 593
HTML+JS 全选与取消全选功能 546
子枫内容系统更新记录 449
有没有人做百度小程序啊 447
PHP 按照指定数量切割字符串 393
php composer更换国内源 375
a链接一键安装ios应用 373
composer 报错SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify 348
layui table 的宽度超出自动隐藏 345
怎么克服拖延症呀 339
最近热帖
[站长推荐] 一些站长/创业者使用的工具推荐 593
HTML+JS 全选与取消全选功能 546
子枫内容系统更新记录 449
有没有人做百度小程序啊 447
PHP 按照指定数量切割字符串 393
php composer更换国内源 375
a链接一键安装ios应用 373
composer 报错SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify 348
layui table 的宽度超出自动隐藏 345
怎么克服拖延症呀 339
近期热议
开始使用 161