如何在PHP中使用另外两个关联数组创建新的关联数组?

时间:2017-12-23 08:32:58

标签: php arrays

我有两个关联数组:

SiringClockAuction

$array1=[key1=>$value1,key2=>$value2,key3=>$value3];

如何创建以下数组:

$array2=[key1=>$value1,key2=>$value2,key4=>$value4];

array_merge不是一个选项,因为我必须在最终数组中保持相同的值。 TNX。

1 个答案:

答案 0 :(得分:0)

您不能将多个键设置为相同的值(每个数组中都有key1),正如您所见,第二个key1将在您使用array_merge时覆盖第一个键。

您的选项取决于每个原始数组是作为一组独立的键/值对运行,还是希望将相似的键/值对组合在一起。

所以,第一个很容易:

$array1=[key1=>$value1,key2=>$value2,key3=>$value3];
$array2=[key1=>$value1,key2=>$value2,key4=>$value4];

$super = [$array1, $array2];

第二个需要更多循环:

$array1=[key1=>$value1,key2=>$value2,key3=>$value3];
$array2=[key1=>$value1,key2=>$value2,key4=>$value4];

$super = [];

foreach ($array1 as $key => $value) {
    $super[$key] = [$value];
}

foreach ($array2 as $key => $value) {
    if (!isset($super[$key])) {
        $super[$key] = [];
    }

    $super[$key][] = $value;
}

如果您知道每个阵列中的键总是相同,那么您可以跳过isset