array_replace替代早期版本的PHP?

问题描述

| 我希望使用array_replace函数,但是我运行的PHP版本不支持它。我想知道是否有人对此有新的选择? 我正在运行的PHP版本是5.2.17 我有一个数组,我只想用键匹配的另一个数组替换元素。 我无法更新服务器btw上的PHP版本:(     

解决方法

        你的意思是这样的吗?
$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()
的行为有任何区别...)     ,        如果您想要此功能的真正反向移植,可以使用以下代码: 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