【问题标题】:Combine two arrays with multiple values and same keys组合两个具有多个值和相同键的数组
【发布时间】:2022-01-17 05:17:49
【问题描述】:

我有两个带有键和值的数组,我想将它们组合起来:

数组 1

[0]=>string "Width"
[1]=>string "Height"
[2]=>string "Length"
[3]=>string "Width"
[4]=>string "Height"
[5]=>string "Length"

数组 2

[0]=>string "42 cm"
[1]=>string "2 cm"
[2]=>string "210 cm"
[3]=>string "5 cm"
[4]=>string "10 cm"
[5]=>string "15 cm"

用 array_combine(array1, array2) 输出:

[Width]=>string "42 cm"
[Height]=>string "2 cm"
[Length]=>string "210 cm"
[Width]=>string "42 cm"
[Height]=>string "2 cm"
[Length]=>string "210 cm"

我怎样才能得到输出?:

[Width]=>string "42 cm"
[Height]=>string "2 cm"
[Length]=>string "210 cm"
[Width]=>string "5 cm"
[Height]=>string "10 cm"
[Length]=>string "15 cm"

【问题讨论】:

  • 你不能因为数组键必须是唯一的。您将不得不使用不同的结构。以[['width' => '42 cm', 'height' => '2 cm'], [...], [...]] 为例

标签: php arrays array-combine


【解决方案1】:

您可以分块这两个数组并将array_combine 映射到这些块上。

$result = array_map('array_combine', array_chunk($array1, 3), array_chunk($array2, 3));

这将为您提供如下结果:

[
    {
        "Width": "42 cm",
        "Height": "2 cm",
        "Length": "210 cm"
    },
    {
        "Width": "5 cm",
        "Height": "10 cm",
        "Length": "15 cm"
    }
]

我认为这可能是您想要得到的最接近的解决方案。

请注意,这仅在键和值的子集与您的示例中的大小相同时才有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2015-01-21
    • 2017-06-02
    相关资源
    最近更新 更多