如何在php中自定义排序数组索引?
我有一个或多个多维数组,我也在配置文件中使用它们。该文件也手动编辑,所以我希望一些关键点有固定的位置。该代码使用该数组读取配置文件,修改、插入密钥等,然后将其保存回去。在保存时,我对钥匙进行了排序,但现在我发现它不够好 有没有什么办法让你如何在php中自定义排序数组索引?,php,multidimensional-array,Php,Multidimensional Array,我有一个或多个多维数组,我也在配置文件中使用它们。该文件也手动编辑,所以我希望一些关键点有固定的位置。该代码使用该数组读取配置文件,修改、插入密钥等,然后将其保存回去。在保存时,我对钥匙进行了排序,但现在我发现它不够好 有没有什么办法让你 键“全名”始终作为第一个键 键'version'作为第二个键 其余的钥匙按字母顺序排列 阵列的示例 array ( 'skroob' => array ( 'ssh' => 'skroob', 'codebase_pa
- 键
始终作为第一个键“全名”
- 键
作为第二个键'version'
- 其余的钥匙按字母顺序排列
array (
'skroob' =>
array (
'ssh' => 'skroob',
'codebase_path' => '/srv/www/htdocs/imacs/radek/4.0.1',
'ssh_status' => 'ok',
'version' => '4.0.1',
'ssh_last_access' => '2012-Feb-17 10:07:26',
'edu_url' => 'https://testing/imacs/radek/4.0.1',
'full_name' => 'skroob 4.0.1',
),
'testing' =>
array (
'full_name' => 'My beautiful testing server (trunk)',
'version' => 'trunk',
'ssh' => 'testing',
'codebase_path' => '/srv/www/htdocs/imacs/radek/trunk',
'ssh_last_access' => '2012-Feb-17 10:07:26',
'ssh_status' => 'ok',
),
)
这里有一条路。它按字母顺序按键对数组进行排序。然后它反转数组并取消设置
全名
和版本键
。然后,它再次添加这些键,以便将它们放置在数组的末尾。最后,它再次反转数组。有点老套,但我不确定有没有更好的方法来满足你的要求
ksort($arr['skroob']);
$arr['skroob'] = array_reverse($arr['skroob']);
$version = $arr['skroob']['version'];
$full_name = $arr['skroob']['full_name'];
unset($arr['skroob']['full_name'], $arr['skroob']['version']);
$arr['skroob']['version'] = $version;
$arr['skroob']['full_name'] = $full_name;
$arr['skroob'] = array_reverse($arr['skroob']);
另一个解决方案是使用uksort并编写一个小回调函数。这看起来可能更专业一些。很酷,我没有其他解决方案:-)谢谢。