php - 如何在 PHP 中合并两个对象数组

标签 php arrays sorting

我有以下两个对象数组:

第一个数组: $array1

Array
(
    [0] => stdClass Object
        (
            [id] => 100
            [name] => Muhammad
        )

    [1] => stdClass Object
        (
            [id] => 102
            [name] => Ibrahim
        )

    [2] => stdClass Object
        (
            [id] => 101
            [name] => Sumayyah
        )
)

第二个数组: $array2

Array
(
    [0] => stdClass Object
        (
            [id] => 100
            [name] => Muhammad
        )

    [1] => stdClass Object
        (
            [id] => 103
            [name] => Yusuf
        )
)

我想合并这两个对象数组(删除所有重复项)并根据 id 排序。

期望的输出:

Array
(
    [0] => stdClass Object
        (
            [id] => 100
            [name] => Muhammad
        )

    [1] => stdClass Object
        (
            [id] => 101
            [name] => Sumayyah
        )

    [2] => stdClass Object
        (
            [id] => 102
            [name] => Ibrahim
        )

    [3] => stdClass Object
        (
            [id] => 103
            [name] => Yusuf
        )
)

最佳答案

这 3 个简单的步骤完成了工作:

//both arrays will be merged including duplicates
$result = array_merge( $array1, $array2 );
//duplicate objects will be removed
$result = array_map("unserialize", array_unique(array_map("serialize", $result)));
//array is sorted on the bases of id
sort( $result );

注意:@Kamran 的回答帮助我找到了这个简单的解决方案

关于php - 如何在 PHP 中合并两个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11877586/

相关文章:

php - 如何按条件对sql结果进行排序?

php - laravel assertDatabaseHas() 测试方法不起作用

php - 如何使用 foreach 循环从表中获取数据

php - 如何将 UTC 日期时间转换为另一个时区?

arrays - 初始化VHDL中的记录数组

c - 在c中递归拆分数组

通过对组内的列进行排序来重新排列数据框

php - 仅为根目录设置自定义默认页面(不适用于子目录)

javascript - 相同的对象被插入 arrayList

c - 无法理解这个指向 arraycode 的 C 指针的输出