我想用字符串键重写数组“foo”的数字键。关系保存在另一个数组“bar”中。
$foo = array(
1 => 'foo',
2 => 'bar',
...
);
$bar = array(
1 => 'abc',
2 => 'xyz',
...
);
$result = array(
'abc' => 'foo',
'xyz' => 'bar',
...
);
实现此结果的最快方法是什么?
答案 0 :(得分:7)
使用array_combine
功能:
$combined = array_combine($bar, $foo);
print_r($combined);
给出了
Array
(
[abc] => foo
[xyz] => bar
)
答案 1 :(得分:1)
如果两个数组($ 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];
}