我想用存储在$aKeyNames
中的文本等效替换$aValues
中的所有数字键。使用另一个阵列中的值更新所有阵列键
$aKeyNames = array(0 => 'foo', 1 => 'bar');
$aValues = array(0 => 'foo content', 1 => 'bar content');
期望的输出;
$aValues = array('foo' => 'foo content', 'bar' => 'bar content');
为了达到这个目的,我写了下面的工作代码;
foreach ($aValues as $iPos => $aValue) {
$aValues[ $aKeyNames[$iPos] ] = $aValue;
unset($aValues[$iPos]);
}
我的问题是,$aValues
是非常大的。有没有更有效的方法来实现这一目标?
您的解决方案似乎不错,因为你要替换由其他阵列中的同一个键的值的关键。你可以使用'array_combine()',但你必须确保两个数组排序相同,所以键的顺序是一样的。 – Rizier123
如果两个数组中都有相同的键,array_combine就是最好的方法。看看http://php.net/manual/en/function.array-combine.php –
谢谢你的评论,我刚刚意识到我发布的错误,我只是在更新的问题上工作 – atoms