我正在寻找使用array_replace函数,但我正在运行的php版本不支持它。我想知道是否有任何新的任何替代方法这样做?
我正在运行的php版本是5.2.17
我有一个数组,我只想用另一个匹配键的数组替换元素。
我无法在服务器上更新php的版本btw :(
答案 0 :(得分:3)
你的意思是这样的吗?
$array;
$replacement;
foreach ($array as $key => &$value) {
if (array_key_exists($key, $replacement)) {
$value = $replacement[$key];
}
}
或只是
foreach ($replacement as $key => $value) {
$array[$key] = $value;
}
或者甚至
array_merge ($array, $replacement);
(我目前认为array_merge()
和array_replace()
的行为没有任何差异......)
答案 1 :(得分:2)
如果你想要这个函数的真正反向端口,你可以使用这个代码: http://www.php.net/manual/fr/function.array-replace.php#92549
if (!function_exists('array_replace'))
{
function array_replace( array &$array, array &$array1 )
{
$args = func_get_args();
$count = func_num_args();
for ($i = 0; $i < $count; ++$i) {
if (is_array($args[$i])) {
foreach ($args[$i] as $key => $val) {
$array[$key] = $val;
}
}
else {
trigger_error(
__FUNCTION__ . '(): Argument #' . ($i+1) . ' is not an array',
E_USER_WARNING
);
return NULL;
}
}
return $array;
}
}
感谢dyer85(at)gmail(dot)com