Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中合并多维数组并用新值替换旧值?_Php_Arrays - Fatal编程技术网

如何在PHP中合并多维数组并用新值替换旧值?

如何在PHP中合并多维数组并用新值替换旧值?,php,arrays,Php,Arrays,我尝试了array\u merge\u recursive,但它没有按预期工作。下面是一个例子: $array1=array( 'name'=>'Bob', 'age'=>30 ); $array2=array( 'name'=>'John', ); $array3=array_merge_recursive($array1,$array2); // Expected result $array3=array( 'name'=>'John', 'age'=>3

我尝试了array\u merge\u recursive,但它没有按预期工作。下面是一个例子:

$array1=array(
'name'=>'Bob',
'age'=>30
);

$array2=array(
'name'=>'John',
);

$array3=array_merge_recursive($array1,$array2);

// Expected result
$array3=array(
'name'=>'John',
'age'=>30
);

// Actual result
$array3=array(
'name'=>array(
  0=>'Bob',
  1=>'John'
),
'age'=>30
);
我会给你你想要的

我会给你你想要的


如果您只想覆盖它,那么您可以使用for循环自己完成。。。如果这不是你想要的,你能提供一个多维的例子吗

$result = array();
foreach($arrays as $currentarray) {
    foreach($currentarray as $property => $value) 
        $result[$property] = $value;
}

如果你只是想覆盖它,那么你可以自己做一个for循环。。。如果这不是你想要的,你能提供一个多维的例子吗

$result = array();
foreach($arrays as $currentarray) {
    foreach($currentarray as $property => $value) 
        $result[$property] = $value;
}
这会很神奇的!:)

这会很神奇的!:)


乔纳森的回答更好:)

乔纳森的回答更好:)

<?php
function array_extend($a1, $a2) {
    foreach ($a2 as $key => $val) {
        if (isset($a1[$key])) {
            if (is_array($a1[$key]) && is_array($val)) {
                $a1[$key] = array_extend($a1[$key], $val);
            }
            else if (is_array($a1[$key])) {
                $a1[$key][] = $val;
            }
            else {
                $a1[$key] = $val;
            }
        }
        else {
            $a1[$key] = $val;
        }
    }
    return $a1;
}

$array1=array(
    'name'=>'Bob',
    'age'=>30
);

$array2=array(
    'name'=>'John'
);
$array3 = array_extend($array1, $array2);
print_r($array3);
// Array
// (
//    [name] => John
//    [age] => 30
//)
php > $array1_keys = array_keys($array1); $array2_keys = array_keys($array2);
php > $array1 = array('name' => 'bob', 'age' => 30); $array2 = array('name' => 'john');
php > $array1_keys = array_keys($array1); $array2_keys = array_keys($array2);   
php > foreach ($array1_keys as $key) {
php { foreach ($array2_keys as $key2) {
php { if ($key == $key2) {
php { $array1[$key] = $array2[$key2];
php { }
php { }
php { }
php > var_dump($array1);
array(2) {
  ["name"]=>
  string(4) "john"
  ["age"]=>
  int(30)
}
php >