繁体   English   中英

什么是重新排列关联数组的最优雅方式?

[英]Whats the most elegant way to rearrange an associative array?

假设您有一个关联数组

$hash['Fruit'] = 'Apple';
$hash['Name'] = 'Jeff';
$hash['Car'] = 'Ford';

并且您无法更改创建这些变量的顺序。 因此Car总是在Name等之后添加到数组中。将关联数组的开头添加/移动Car而不是结束(默认)的最漂亮的方法是什么?

$hash = array('Car' => 'Ford') + $hash;

ksort()

但是你为什么要关心阵列的内部秩序呢?

array_reverse($hash, true);

这不是一个非常直接的解决方案,但它是:

$value = end($hash);
$hash = array(key($hash) => $value) + $hash;

另一招是 -

$new_items = array('Car' => 'Ford');
$hash = array_merge($new_items, $hash);

您也可以重新排列新的数组键。 假设汽车首先是另一个领域(比如说Id)那么阵列仍然是......

$new_items = array('Car' => 'Ford','Id'=>'New Id');
$hash = array_merge($new_items, $hash);

阵列将变得像

$hash['Car'] = 'Ford';
$hash['Id'] = 'New Id';
$hash['Fruit'] = 'Apple';
$hash['Name'] = 'Jeff';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM