我有一个以这种方式生成的数组,因为它是以这种方式生成的,并且改变生成方式是一项任务。这是它的一部分,有更多。
$name['Age'] = '25';
$name['Location'] = 'Seattle';
$name['Last'] = 'Gates';
$name['First'] = 'Bill';
print_r($name);
如果生成后如何将其顺序更改为以下内容?
$name['First'] = 'Bill';
$name['Last'] = 'Gates';
$name['Age'] = '25';
$name['Location'] = 'Seattle';
print_r($name);
答案 0 :(得分:4)
是的,有一个函数可以让你根据自己的标准按键重新排序关联数组。它被称为uksort:
$key_order = array_flip(['First', 'Last', 'Age', 'Location']);
uksort($name, function($key1, $key2) {
return $key_order[$key1] - $key_order[$key2];
});
print_r($name);
Demo。
说了这么多,我不禁想知道你是不是需要一些不同的东西:改变你的阵列的输出的顺序。例如:
$output_order = ['First', 'Last', 'Age', 'Location'];
foreach ($output_order as $key) {
echo $key, ' => ', $name[$key], PHP_EOL;
}