PHP 二维数组排序——array_multisort()

621 阅读1分钟

有时候我们要对一个多维数组进行排序,如对以下数组:

    $a = array(
	    array(
		    'age' => 10,
		    'name' => 'John',
		    ),
		array(
		    'age' => 11,
		    'name' => 'Jim',
		    ),  
		array(
		    'age' => 9,
		    'name' => 'Tom',
		    ),
	);

根据age进行排序,则我们使用array_multisort(),其功能是

参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。

所以要先把age拿出来:

	$age = array();
	foreach ($a as $value) {
		$age[] = $value['age'];
	}

再对$a数组进行排序:

	array_multisort($age, SORT_ASC, $a);

这里相当于使用age数组对age数组对a进行升序排序