首页 > PHP专栏 > PHP对二维数组进行指定字段排序
2015
12-12

PHP对二维数组进行指定字段排序

现有如下数组:

$userlist = array(
   array(
      'id'   => 1,
      'name' => '张三',
      'age'  => 20
   ),
   array(
      'id'   => 2,
      'name' => '李四',
      'age'  => 18
   ),
   array(
      'id'   => 3,
      'name' => '王五',
      'age'  => 25
   ),
   array(
      'id'   => 4,
      'name' => '赵六',
      'age'  => 22
   )
);

如果需要对以上数组进行根据年龄字段(age)来排序,可以参考以下代码:

//根据指定元素对数组排序方法
private function array_sort($arr,$keys,$type='asc'){ 
	$keysvalue = $new_array = array();
	foreach ($arr as $k=>$v){
		$keysvalue[$k] = $v[$keys];
	}
	if($type == 'asc'){
		asort($keysvalue);
	}else{
		arsort($keysvalue);
	}
	reset($keysvalue);
	foreach ($keysvalue as $k=>$v){
		$new_array[$k] = $arr[$k];
	}
	return $new_array; 
}

然后使用以上方法即可:

$this->array_soft($userlist, 'age', 'asc');

最后我们看看打印的结果(以age字段正序排序):

Array(
[1] => Array
	(
		[id] => 2
		[name] => 李四
		[age] => 18
	)

[0] => Array
	(
		[id] => 1
		[name] => 张三
		[age] => 20
	)

[3] => Array
	(
		[id] => 4
		[name] => 赵六
		[age] => 22
	)

[2] => Array
	(
		[id] => 3
		[name] => 王五
		[age] => 25
	)
)

留下一个回复