首页 > 解决方案 > 根据php中的值插入数组中

问题描述

阵列 1

Array
(
    [0] => Array
        (
            [agent_id] => 1
            [details] => Array
                (
                    [1] => 100
                    [3] => -10
                    [2] => 0
                )

        )

    [1] => Array
        (
            [agent_id] => 2
            [details] => Array
                (
                    [1] => 0
                    [3] => -5
                    [2] => -50
                )

        )

    [2] => Array
        (
            [agent_id] => 3
            [details] => Array
                (
                    [1] => 50
                    [3] => 0
                    [2] => 0
                )
        )

    [3] => Array
        (
            [agent_id] => 4
            [details] => Array
                (
                    [1] => 50
                    [3] => 0
                    [2] => 0
                )
        )
)

阵列 2

Array
(
    [0] => Array
        (
            [id] => 10
            [agent_Id] => 1
            [total] => 90
            [room_Id] => 1
            [user_Id] => 1
        )

    [1] => Array
        (
            [id] => 10
            [agent_Id] => 3
            [total] => 90
            [room_Id] => 1
            [user_Id] => 1
        )

    [2] => Array
        (
            [id] => 10
            [agent_Id] => 4
            [total] => 90
            [room_Id] => 1
            [user_Id] => 1
        )

    [3] => Array
        (
            [id] => 10
            [agent_Id] => 2
            [total] => 90
            [room_Id] => 1
            [user_Id] => 1

        )
}

上面有 2 个数组,我怎样才能打破数组 1 是“详细信息”并根据它们的agent_id存储到数组 2 中?我试图循环 array1 并与agent_id匹配,但没有做到这一点。任何人都可以帮助解决这个问题:(?最终结果将只有 1 个数组,这是否意味着数组 1 的“详细信息”将存储到数组 2 中。

foreach ($array1 as $key => $value) {
   if($array1['agent_id'] == $finalResult[$key]['agent_Id']){
        $array2['detais'] = $value['details'];
   }
}

标签: phparrays

解决方案


IIUC,您想将detailsfrom插入具有相同值$array1的条目中。为此,您可以遍历,在 的列上使用以找到适当的条目,然后将详细信息复制到该条目:$array2agent_id$array1array_searchagent_Id$array2

foreach ($array1 as $value) {
    $key = array_search($value['agent_id'], array_column($array2, 'agent_Id'));
    if ($key !== false) {
        $array2[$key]['details'] = $value['details'];
    }
}

print_r($array2);

输出:

Array
(
    [0] => Array
        (
            [id] => 10
            [agent_Id] => 1
            [total] => 90
            [room_Id] => 1
            [user_Id] => 1
            [details] => Array
                (
                    [1] => 100
                    [3] => -10
                    [2] => 0
                )
        )
    [1] => Array
        (
            [id] => 10
            [agent_Id] => 3
            [total] => 90
            [room_Id] => 1
            [user_Id] => 1
            [details] => Array
                (
                    [1] => 50
                    [3] => 0
                    [2] => 0
                )
        )
    [2] => Array
        (
            [id] => 10
            [agent_Id] => 4
            [total] => 90
            [room_Id] => 1
            [user_Id] => 1
            [details] => Array
                (
                    [1] => 50
                    [3] => 0
                    [2] => 0
                )
        )
    [3] => Array
        (
            [id] => 10
            [agent_Id] => 2
            [total] => 90
            [room_Id] => 1
            [user_Id] => 1
            [details] => Array
                (
                    [1] => 0
                    [3] => -5
                    [2] => -50
                )
        )
)

3v4l.org 上的演示


推荐阅读