我希望将数组“foo”的数字键重写为字符串键。关系保存在另一个数组“bar”中。
$foo = array(
1 => 'foo',
2 => 'bar',
...
);
$bar = array(
1 => 'abc',
2 => 'xyz',
...
);
$result = array(
'abc' => 'foo',
'xyz' => 'bar',
...
);
什么是最快的方法来实现这个结果?
使用 array_combine
函数:
$combined = array_combine($bar, $foo);
print_r($combined);
的输出结果为:
Array
(
[abc] => foo
[xyz] => bar
)
如果两个数组($foo和$bar)中的键/值顺序不同,NullPointer的示例将失败。请考虑以下情况:
$foo = array(
1 => 'foo',
2 => 'bar',
);
$bar = array(
2 => 'xyz',
1 => 'abc',
);
array_combine($foo, $bar)
,输出将会是:array(2) {
["foo"]=>
string(3) "xyz"
["bar"]=>
string(3) "abc"
}
$output = array();
foreach ($bar as $from => $to) {
$output[$to] = $foo[$from];
}
ksort
呢? :P - cHao1 =>
),因此我想我们可以假设已经处理好了,此外我们总是可以重新索引两个数组(例如array_values
)。对我来说,array_combine
似乎是更简短、更简单的解决方案。 - Zbigniew