首页 > 解决方案 > 如何使用具有多个值的另一个数组从数组中删除值?

问题描述

我有两个数组 Array1 和 Array2,我需要从 Array1 中删除 Array2 值我在这里显示我的两个数组。

在 Array1 中,我的 utype_id 是 11 和 14,我需要从 Array2 中删除这个 id 记录,所以我该怎么做,你能帮帮我吗?

Array1(

    [0] => stdClass Object
        (
            [id] => 22
            [accessid] => 2
            [utype_id] => 11
            [discount] => 3434
            [published] => 1
        )

    [1] => stdClass Object
        (
            [id] => 23
            [accessid] => 2
            [utype_id] => 14
            [discount] => 2
            [published] => 1
        )
)


Array2
(
    [0] => stdClass Object
        (
            [id] => 9
            [type_name] => Admin
            [description] => admin
            [published] => 0
        )

    [1] => stdClass Object
        (
            [id] => 10
            [type_name] => Senior sales
            [description] => senior sales
            [published] => 0
        )

    [2] => stdClass Object
        (
            [id] => 11
            [type_name] => junior sales
            [description] => junior
            [published] => 1
        )

    [3] => stdClass Object
        (
            [id] => 14
            [type_name] => dealer
            [description] => dealer
            [published] => 0
        )

    [4] => stdClass Object
        (
            [id] => 15
            [type_name] => fgdg
            [description] => dfg
            [published] => 1
        )

    [5] => stdClass Object
        (
            [id] => 16
            [type_name] => fgdfg
            [description] => fgdfg
            [published] => 0
        )

)

我没有得到任何解决方案。我只需要来自 Array2 的 9,10,15,16 记录 ID。

标签: phparrays

解决方案


只是为了娱乐目的(我感觉有点被忽视了:()。按 ID 索引两个数组(需要 php 7+array_column()才能支持对象作为输入),然后array_diff_key()从第二个数组中删除任何...

print_r(array_diff_key(array_column($array2, null, "id"), 
                  array_column($array1, null, "utype_id")));

我想说一个foreach()解决方案比这个更快,只是想加入并发布一些原创内容。


推荐阅读