首页 > 解决方案 > 如何在PHP中合并两个相同大小的对象

问题描述

我有以下两个对象数组:

第一个数组: $array1

Array
(
    [0] => stdClass Object
        (
            [pid] => 1
            [pname] => iphone-6s
            [product_category] => 1
            [product_price] => 250
            [product_description] => Its iphone-6s, Apple Brand Products
            [product_image] => iPhone6s.png
            [uid] => 1
            [product_status] => Active
        )

    [1] => stdClass Object
        (
            [pid] => 2
            [pname] => Beauty Care
            [product_category] => 1
            [product_price] => 200
            [product_description] => Beauty Care's Products
            [product_image] => 2ca65f58e35d9ad45bf7f3ae5cfd08f1_beauty-care.png
            [uid] => 1
            [product_status] => Active
        )

    [2] => stdClass Object
        (
            [pid] => 3
            [pname] => iphone-4
            [product_category] => 1
            [product_price] => 230
            [product_description] => its iphone-4, Apple Brand Products
            [product_image] => 5878a7ab84fb43402106c575658472fa_iphone_4.png
            [uid] => 1
            [product_status] => Active
        )

    [3] => stdClass Object
        (
            [pid] => 4
            [pname] => Android tv
            [product_category] => 1,2
            [product_price] => 180
            [product_description] => Smart TV
            [product_image] => Android-TV.png
            [uid] => 2
            [product_status] => Active
        )

    [4] => stdClass Object
        (
            [pid] => 5
            [pname] => AC
            [product_category] => 1
            [product_price] => 185
            [product_description] => AC
            [product_image] => air_conditioner.png
            [uid] => 2
            [product_status] => Active
        )

    [5] => stdClass Object
        (
            [pid] => 6
            [pname] => Harry Potter
            [product_category] => 4
            [product_price] => 25
            [product_description] => Harry Potter and the Cursed Child
            [product_image] => harry_potter.jpg
            [uid] => 1
            [product_status] => Active
        )

    [6] => stdClass Object
        (
            [pid] => 7
            [pname] => Football
            [product_category] => 4
            [product_price] => 25
            [product_description] => Nivia Football
            [product_image] => football.jpeg
            [uid] => 1
            [product_status] => Active
        )

    [7] => stdClass Object
        (
            [pid] => 8
            [pname] => Ps4
            [product_category] => 1,3,4,5
            [product_price] => 1600
            [product_description] => Ps4
            [product_image] => Ps-4.png
            [uid] => 2
            [product_status] => Active
        )

)

第二个数组: $array2

Array
(
    [0] => stdClass Object
        (
            [mysummary] => Electronics
        )

    [1] => stdClass Object
        (
            [mysummary] => Electronics,Fashion
        )

    [2] => stdClass Object
        (
            [mysummary] => Electronics
        )

    [3] => stdClass Object
        (
            [mysummary] => Sports, Books and Gaming etc.
        )

    [4] => stdClass Object
        (
            [mysummary] => Sports, Books and Gaming etc.
        )

    [5] => stdClass Object
        (
            [mysummary] => Electronics
        )

    [6] => stdClass Object
        (
            [mysummary] => Electronics
        )

    [7] => stdClass Object
        (
            [mysummary] => Electronics,Home & Furniture,Sports, Books and Gaming etc.,Beauty & Personal Care
        )

)

我想合并这两个对象数组

期望的输出:

Array
(
    [0] => stdClass Object
        (
            [pid] => 1
            [pname] => iphone-6s
            [product_category] => 1
            [product_price] => 250
            [product_description] => Its iphone-6s, Apple Brand Products
            [product_image] => iPhone6s.png
            [uid] => 1
            [product_status] => Active
            [mysummary] => Electronics
        )

    [1] => stdClass Object
        (
            [pid] => 2
            [pname] => Beauty Care
            [product_category] => 1,2
            [product_price] => 200
            [product_description] => Beauty Care's Products
            [product_image] => 2ca65f58e35d9ad45bf7f3ae5cfd08f1_beauty-care.png
            [uid] => 1
            [product_status] => Active
            [mysummary] => Electronics,Fashion
        )

    [2] => stdClass Object
        (
            [pid] => 3
            [pname] => iphone-4
            [product_category] => 1
            [product_price] => 230
            [product_description] => its iphone-4, Apple Brand Products
            [product_image] => 5878a7ab84fb43402106c575658472fa_iphone_4.png
            [uid] => 1
            [product_status] => Active
            [mysummary] => Electronics
        )

    [3] => stdClass Object
        (
            [pid] => 4
            [pname] => Android tv
            [product_category] => 3,4
            [product_price] => 180
            [product_description] => Smart TV
            [product_image] => Android-TV.png
            [uid] => 2
            [product_status] => Active
             [mysummary] => Sports, Books and Gaming etc.
        )

    [4] => stdClass Object
        (
            [pid] => 5
            [pname] => AC
            [product_category] => 3,4
            [product_price] => 185
            [product_description] => AC
            [product_image] => air_conditioner.png
            [uid] => 2
            [product_status] => Active
            [mysummary] => Sports, Books and Gaming etc.
        )

    [5] => stdClass Object
        (
            [pid] => 6
            [pname] => Harry Potter
            [product_category] => 1
            [product_price] => 25
            [product_description] => Harry Potter and the Cursed Child
            [product_image] => harry_potter.jpg
            [uid] => 1
            [product_status] => Active
            [mysummary] => Electronics
        )

    [6] => stdClass Object
        (
            [pid] => 7
            [pname] => Football
            [product_category] => 1
            [product_price] => 25
            [product_description] => Nivia Football
            [product_image] => football.jpeg
            [uid] => 1
            [product_status] => Active
            [mysummary] => Electronics
        )

    [7] => stdClass Object
        (
            [pid] => 8
            [pname] => Ps4
            [product_category] => 1,3,4,5
            [product_price] => 1600
            [product_description] => Ps4
            [product_image] => Ps-4.png
            [uid] => 2
            [product_status] => Active
            [mysummary] => Electronics,Home & Furniture,Sports, Books and Gaming etc.,Beauty & Personal Care
        )

)

标签: phparrayscodeignitermultidimensional-array

解决方案


您可以使用索引循环并将第二个数组的属性添加到第一个:

for ($index = 0; $index < count($array1); $index++) {
    $array1[$index]->mysummary = $array2[$index]->mysummary;
}

推荐阅读