PHP关联数组如何按给定的键序来排序?

逆流の鱼, 26 一月, 2021

 假设你有这么一个关联数组:

// original array
$user = [
	'age' => 45, 
	'email' => 'john@doe.com', 
	'last_login' => '2016-10-21', 
	'name' => 'John Doe'
];

而你希望按这样的键序来排序:

// sort order we want
$order = ['name', 'email', 'age', 'last_login'];

实现方法:

// PHP 4+
$ordered_array = array_merge(array_flip($order), $user);

出来的效果是:

Array(
    'name' => 'John Doe',
    'email' => 'john@doe.com',
    'age' => 45,
    'last_login' => '2016-10-21'
); 

简单解释:

  • array_flip()将数组的键=>值对调。
  • array_merge()合并两个数组,键相同的,由后面的数组覆盖值。

评论