简体   繁体   English

如何通过从php中的其他数组中获取值来合并数组

[英]How to merge array by taking values from other array in php

I have two arrays like this 我有两个像这样的阵列

$array1 = ['name'=>'john', 'age'=> 10]
$array2 = ['name' => 'johnKaff', 'class' => 'User', 'option'=array('c1', 'c2')]

The result i want is 我想要的结果是

$array2 = ['name' => 'john', 'class' => 'User', 'option'=array('c1', 'c2'), 'age'=> 10]

The values from $array1 should always override if have same key in $array2 如果在$array2具有相同的键,则$array1的值应始终覆盖

Use array_replace() : 使用array_replace()

$result = array_replace($array2, $array1);

Where: 哪里:

  • $array1 - The array in which elements are replaced. $array1 - 替换元素的数组。
  • $array2 - The array from which elements will be extracted. $array2 - 从中提取元素的数组。

Output: 输出:

Array
(
    [name] => john
    [class] => User
    [option] => Array
        (
            [0] => c1
            [1] => c2
        )

    [age] => 10
)

Use the + operator : 使用+运算符

$combined_array = $array1 + $array2;

The array listed first wins when each array has an element with the same key. 当每个数组具有相同键的元素时,列出的数组首先获胜。

Example: 例:

$array1 = array('name'=>'john', 'age'=> 10);
$array2 = array('name' => 'johnKaff', 'class' => 'User', 'option'=>array('c1', 'c2'));
$combined_array = $array1 + $array2;
var_dump($combined_array);

Output: 输出:

array(4) {
    ["name"]=>
      string(4) "john"
    ["age"]=>
      int(10)
    ["class"]=>
      string(4) "User"
    ["option"]=>
      array(2) {
        [0]=>
          string(2) "c1"
        [1]=>
          string(2) "c2"
      }
}

你应该使用array_merge

array_merge($array1, $array2);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM