Php 通过匹配键组合两个不等数组
我想把下面的两个数组合并成一个数组。更具体地说,我想将第二个数组的内容添加到第一个数组中匹配的键中。最后一个数组中的键应该包含两个数组中匹配键的内容Php 通过匹配键组合两个不等数组,php,Php,我想把下面的两个数组合并成一个数组。更具体地说,我想将第二个数组的内容添加到第一个数组中匹配的键中。最后一个数组中的键应该包含两个数组中匹配键的内容 Array ( [123456789_404045862944400] => 192 [123456789_403274909688162] => 186 [123456789_402735273075459] => 311 [123456789_252948031457462] => 385 [123456789
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\u 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没有的单元格和Array1没有的单元格,那么在foreach中添加一个else
else
{
$array3[$k] = array($v, null);
}
这是为了使阵列在循环时形状均匀
这将检查数组1的每个元素,检查数组1中每个键的数组2,如果存在,则在该键处添加一个新数组,保存该键的前两个数组的数据。能否在此处提供示例输出数组?条件是什么?看来你在这里工作很准时。如果我添加的值超过
23:59
,会发生什么情况?两个数组是否总是相等,或者一个数组的项目是否有可能多于另一个?两个数组是否都包含相同的项,或者是否有一个项在一个数组中而不是在另一个数组中?Hi@Teez,数组_merge输出一个数组,该数组是两者的简单组合。foreach方法从arr1输出一个具有空值和无值的数组。array_combine给出了“两个参数在…中的元素数应该相等”错误。Hi@Joseph,两个数组的键数几乎总是不相等的。这就是为什么我想将这些值合并到数组中。数组一总是有所有的键,但是数组二有一些键不在数组二中,因此所有匹配键的值都应该在最后一个数组中。嗨@Jake,谢谢你的回答。我让它工作了。万分感谢!谢谢你,我刚刚遇到了这个问题,为了我的目的对它做了一些调整,但是你的解释让我克服了我正在进行的项目中的一个大障碍。谢谢