php – 通过匹配键组合两个不等的数组

我想将下面的两个数组合并为一个.更具体地说,我想将第二个数组的内容添加到第一个数组中的匹配键.最终数组中的键应具有两个数组的匹配键的内容.

Array ( 
[123456789_404045862944400] => 192 
[123456789_403274909688162] => 186 
[123456789_402735273075459] => 311 
[123456789_252948031457462] => 385 
[123456789_400606749954978] => 287 
[123456789_286755318061725] => 358 
[123456789_399687880046865] => 257 
[123456789_398332190182434] => 240 
[123456789_397768486905471] => 311 
[123456789_396907650324888] => 293 
[123456789_394850557197264] => 496 
[123456789_394121230603530] => 475 
[123456789_369757766367627] => 488 
[123456789_391602517522068] => 506 
[123456789_390848830930770] => 437 
[123456789_389975351018118] => 452 
[123456789_242486689170043] => 525 
[123456789_388151047867215] => 415 
[123456789_387476447934675] => 502 
[123456789_386620518020268] => 467 
[123456789_215937481836499] => 359 
)

Array (
[123456789_404045862944400] => 23:52 
[123456789_403274909688162] => 22:21 
[123456789_402735273075459] => 04:29 
[123456789_252948031457462] => 06:22 
[123456789_400606749954978] => 05:01 
[123456789_286755318061725] => 04:51 
[123456789_399687880046865] => 21:51 
[123456789_398395260176127] => 01:13 
[123456789_398332190182434] => 23:19 
[123456789_397768486905471] => 05:38 
[123456789_397509266931393] => 00:46 
[123456789_396907650324888] => 03:38 
[123456789_394850557197264] => 05:12 
[123456789_394121230603530] => 04:15 
[123456789_369757766367627] => 04:01 
[123456789_391602517522068] => 03:44 
[123456789_390848830930770] => 06:05 
[123456789_389975351018118] => 04:00 
[123456789_242486689170043] => 04:13 
[123456789_388151047867215] => 00:22 
[123456789_387544787927841] => 07:34 
[123456789_387476447934675] => 04:51 
[123456789_386620518020268] => 06:05 
[123456789_386504878031832] => 02:38 
[123456789_215937481836499] => 01:10 
) 

到目前为止我尝试过的:

$array1 = array_merge($array1, $array2);

还试过像:

foreach($arr2 as $k=>$v) {
    $a[$k] = $arr1[$k];
}

但它没有正确地组合/合并数组是匹配键.

我也尝试使用array_combine但是因为它通过使用一个数组来创建一个数组,而另一个数组用于它的值,我无法使其工作.

解决方法:

好吧,所以我有两个数据数组和一个空数据来保存新数组

$array1 = array('key1'=>'value1');
$array2 = array('key2'=>'value2');
$array3 = array();

根据键组合它们

foreach($array1 as $k=>$v)
{
    if(array_key_exists($k, $array2))
    {
        $array3[$k] = array($v, $array2[$k]);
    }
}

$array3保存新数组.如果要覆盖原始数组,只需添加即可

$array1 = $array3;

如果你想让array3保存array2没有的单元格而数组1确实有,那么在foreach中添加一个else

else
{
    $array3[$k] = array($v, null);
}

这是为了使它在循环时使阵列形状均匀.

这将查看array1的每个元素,检查数组1中每个键的数组2(如果存在),在该键处添加一个新数组,保存该键的前两个数组的数据.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...