PHP二维数组 按照数组内某个键排序

二维数组按照某个数组内的key来排序
题解如下:

function array_sort($arr,$key,$sort=0){
    
    
	
	if(!is_array($arr) || empty($arr)) {
    
    
		return false;
	}
	
	// 先循环把二维数组 转换为一位数组
	foreach($arr as $item=>$items) {
    
    
		$keysortval[] = $items[$key];
	}
	
	// 转换成功后 判断传过来的排序是0还是1
	if($sort == 0 ) {
    
    
		asort($keysortval); // 0 倒叙
	} else {
    
    
		arsort($keysortval); // 1正序
	}
	
	// 最后一步就简单许多 上面排序好的直接用
	$data = array();
	foreach($keysortval as $keys=>$vals) {
    
    
		$data[$keys] = $arr[$keys]; // $arr[$keys] 就是二维数组的键  重组给$data即可  $data[] 是新的key  $data[$keys] 是保留原有的key
	}
	return $data;
}

$arr = array();
$arr[] = array('volume' => 66, 'edition' => 2);
$arr[] = array('volume' => 86, 'edition' => 1);
$arr[] = array('volume' => 85, 'edition' => 6);
$arr[] = array('volume' => 98, 'edition' => 2);
$arr[] = array('volume' => 98, 'edition' => 6);
$arr[] = array('volume' => 67, 'edition' => 7);
array_sort($arr,'volume',0); // 此处调用

猜你喜欢

转载自blog.csdn.net/weixin_43944691/article/details/107929682
今日推荐