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

 
更多

关于这个问题,已经有更好的解决方案了,请参考:

php二维数组按某个字段排序

不过下面的代码仍可以供参考:

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

/*
function:二维数组按指定的键值排序
author:www.phpernote.com
*/
function array_sort($array,$keys,$type='asc'){
	if(!is_array($array)||empty($array)||!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');
打赏

本文固定链接: https://www.cxy163.net/archives/3255 | 绝缘体

该日志由 绝缘体.. 于 2020年06月09日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 二维数组按指定的键值排序 | 绝缘体

二维数组按指定的键值排序:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter