问题描述
|
我希望使用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