第一个数组:一维,第二个阵列:二维
我想按键合并两个数组,保留键和第二个数组的值
1st Array (
[30] => 30
[28] => 28
[27] => 27
[16] => 16
)
2nd Array (
[27] => Array (
[person_id] => 27
[person_name] => Jazz Club
[person_job] => 10
[drink_price] => 5
)
)
Expected result Array (
[30] => 30
[28] => 28
[27] => [27] => Array
(
[person_id] => 27
[person_name] => Jazz Club
[person_job] => 10
[drink_price] => 5
)
[16] => 16
)
看到这个
如果要将数组元素从第二个数组追加到第一个数组,同时不覆盖第一个数组中的元素,也不重新编制索引,请使用 + 数组联合运算符:
<?php
$array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a');
$array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b');
$result = $array1 + $array2;
var_dump($result);
?>
将保留第一个数组中的密钥。如果两个数组中都存在数组键,则将使用第一个数组中的元素,而第二个数组中的匹配键元素将被忽略。
array(5) {
[0]=>
string(6) "zero_a"
[2]=>
string(5) "two_a"
[3]=>
string(7) "three_a"
[1]=>
string(5) "one_b"
[4]=>
string(6) "four_b"
}
您的解决方案应该是:
<?
$arr1 = array (
30=> 30,
28=> 28,
27=> 27,
16=> 16
);
$arr2 = array (
27 => array (
person_id => 27,
person_name => "Jazz Club",
person_job => 10,
drink_price => 5
)
);
$newarr = $arr2 + $arr1;
print_r($newarr);
?>
给出以下结果
Array
(
[27] => Array
(
[person_id] => 27
[person_name] => Jazz Club
[person_job] => 10
[drink_price] => 5
)
[30] => 30
[28] => 28
[16] => 16
)
您可以通过以下简单行实现此目的:
$firstArray[27]=$2ndArray;
在这里演示
例:
<?php
$first[14]=14;
$first[16]=16;
$first[17]=17;
$first[21]=21;
$second[27]=Array ('person_id' => 27
,'person_name' => 'Jazz Club'
,'person_job' => 10
,'drink_price' => 5
);
$first[27]=$second;
echo '<pre>';
print_r($first);
echo '</pre>';
输出:
Array
(
[14] => 14
[16] => 16
[17] => 17
[21] => 21
[27] => Array
(
[27] => Array
(
[person_id] => 27
[person_name] => Jazz Club
[person_job] => 10
[drink_price] => 5
)
)
)