[英]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.