首页 > 解决方案 > PHP用不同数组中的值替换数组中的值

问题描述

我有两个数组,array1 有 408 行,array2 有 256 行。

这是 array1 的 saml 示例

Array
(
    [0] => Array
        (
            [nodo] => N_127y4Gral
            [int_id] => 34213897
            [dow_id] => Array
                (
                    [0] => 536870914
                    [1] => 536870914
                    [2] => 536870914
                    [3] => 536870914
                    [4] => 536870914
                )
        )
    [1] => Array
        (
            [nodo] => N_121y7
            [int_id] => 34213905
            [dow_id] => Array
                (
                    [0] => 536870915
                    [1] => 536870915
                    [2] => 536870915
                    [3] => 536870915
                    [4] => 536870915
                )
        )
    [2] => Array
        (
            [nodo] => N_144y4Gral
            [int_id] => 34213921
            [dow_id] => Array
                (
                    [0] => 536870918
                    [1] => 536870918
                    [2] => 536870918
                    [3] => 536870918
                    [4] => 536870918
                )
        )
    [3] => Array
        (
            [nodo] => N_132y2
            [int_id] => 34213921
            [dow_id] => Array
                (
                    [0] => 536870914
                    [1] => 536870914
                    [2] => 536870914
                    [3] => 536870914
                    [4] => 536870914
                )
        )
)

这是array2的一个saml示例

Array
(
    [0] => Array([536870914] => 201920520)
    [1] => Array([536870914] => 201920528)
    [2] => Array([536870914] => 201920536)
    [3] => Array([536870914] => 201920544)
    [4] => Array([536870914] => 201920552)
    [5] => Array([536870915] => 201920560)
    [6] => Array([536870915] => 201920568)
    [7] => Array([536870915] => 201920576)
    [8] => Array([536870915] => 201920584)
    [9] => Array([536870915] => 201920592)
    [10] => Array([536870916] => 201928784)
    [11] => Array([536870916] => 201928792)
    [12] => Array([536870916] => 201928800)
    [13] => Array([536870916] => 201928808)
    [14] => Array([536870916] => 201928816)
    [15] => Array([536870917] => 201928824)
    [16] => Array([536870917] => 201928832)
    [17] => Array([536870917] => 201932808)
    [18] => Array([536870917] => 201932816)
    [19] => Array([536870917] => 201932824)
    [20] => Array([536870918] => 201920600)
    [21] => Array([536870918] => 201920608)
    [22] => Array([536870918] => 201920616)
    [23] => Array([536870918] => 201920624)
    [24] => Array([536870918] => 201920632)
)

我想弄清楚的是如何用 array2 中的相应值替换 array1 中的 dow_id 值。所有的 dow_id 值都作为 ids 存在于 array2 中。

这是我想要实现的输出

Array
(
    [0] => Array
        (
            [nodo] => N_127y4Gral
            [int_id] => 34213897
            [dow_id] => Array
                (
                    [0] => 201920520
                    [1] => 201920528
                    [2] => 201920536
                    [3] => 201920544
                    [4] => 201920552
                )
        )
    [1] => Array
        (
            [nodo] => N_121y7
            [int_id] => 34213905
            [dow_id] => Array
                (
                    [0] => 201920560
                    [1] => 201920568
                    [2] => 201920576
                    [3] => 201920584
                    [4] => 201920592
                )
        )
    [2] => Array
        (
            [nodo] => N_144y4Gral
            [int_id] => 34213921
            [dow_id] => Array
                (
                    [0] => 201920600
                    [1] => 201920608
                    [2] => 201920616
                    [3] => 201920624
                    [4] => 201920632
                )
        )
    [3] => Array
        (
            [nodo] => N_132y2
            [int_id] => 34213854
            [dow_id] => Array
                (
                    [0] => 201920520
                    [1] => 201920528
                    [2] => 201920536
                    [3] => 201920544
                    [4] => 201920552
                )
        )            
)

非常感谢任何帮助或建议

标签: phparrays

解决方案


这很容易用array_column. 无需更改数组格式:

foreach ($a1 as &$value) {
    $value['dow_id'] = array_column($a2, $value['dow_id'][0]);
}

3v4l.org 上的演示


推荐阅读