首页 > 解决方案 > 在新键上创建多个数组并检查相同的键,

问题描述

我想将 2 个数组组合成新键上的多个数组,并检查相同的键。这是在图像原始数组上,其中 suborderid 键是确定它们的键

数组 1: ( $pso)

Array
(
    [0] => Array
        (
            [suborderid] => 127
            [orderid] => 120
        )

    [1] => Array
        (
            [suborderid] => 128
            [orderid] => 120
        )

    [2] => Array
        (
            [suborderid] => 129
            [orderid] => 120
        )

)

数组 2: ( $items)

Array
(
    [0] => Array
        (
            [suborderid] => 127
            [title] => Kue Nastar
        )

    [1] => Array
        (
            [suborderid] => 128
            [title] => Kue Lapis
        )

    [2] => Array
        (
            [suborderid] => 128
            [title] => Kue Bakar
        )

)

这是我想要的结果

Array
(
    [0] => Array
        (
            [suborderid] => 127
            [orderid] => 120
            [0] => Array
                (
                    [suborderid] => 127
                    [title] => Kue Nastar
                )

        )

    [1] => Array
        (
            [suborderid] => 128
            [orderid] => 120
            [0] => Array
                (
                    [suborderid] => 128
                    [title] => Kue Lapis
                )

            [1] => Array
                (
                    [suborderid] => 128
                    [title] => Kue Bakar
                )

        )

    [2] => Array
        (
            [suborderid] => 129
            [orderid] => 120
        )

)

这是我到目前为止所尝试的:

foreach ($pso as $key => $i){
   foreach ($items as $row => $l){
        $pso[$key]['items'] = $items;   
   }
}

标签: phparrays

解决方案


$newPso = [];

foreach ($pso as $val) {
    $newPso[$val["suborderid"]] = $val;
}

foreach ($items as $item) {
    $newPso[$item["suborderid"]][] = $item;
}

$pso = array_values($newPso);

print_r($pso);

首先,我用数组的值$pso和它的 suborderid 的键创建一个新数组。

然后我只是迭代$items数组并添加值。array_values是摆脱新的钥匙。

演示:https ://3v4l.org/QIgjW


推荐阅读