猿问

根据匹配值从两个数组创建新数组

试图根据匹配值从两个对象数组创建一个新数组,但不知道如何实现这一点。


        $dData = '[

            {

                "products": [

                    {

                        "Part ID" : "001",

                        "name" : "Product Name",

                        "category" : "Product Category",

                        "description" : "Product Description",

                        "id" : "111xyz",

                    },

                    {

                        "Part ID" : "002",

                        "name" : "Product Name 2",

                        "category" : "Product Category 2",

                        "description" : "Product Description 2",

                        "id" : "333xyz"

                    },

                    {

                        "Part ID" : "003",

                        "name" : "Product Name 3",

                        "category" : "Product Category 3",

                        "description" : "Product Description 3",

                        "id" : "444xyz"

                    },  

                    {

                        "Part ID" : "004",

                        "name" : "Product Name 4",

                        "category" : "Product Category",

                        "description" : "Product Description",

                        "id" : "666xyz",

                        "features_img_id":["f1","f2","f3"]

                    }]

                },

                {

                "assets": [

                    {

                        "File Name" : "Some file name",

                        "url" : "www.123.com/x.jpg",

                        "id" : "111xyz"

                    },

                    {

                         "File Name" : "Feature 1 file",

                        "url" : "www.123.com/f1.jpg",

                        "id" : "f1"

                    },


如果我在这里完全是新手,我深表歉意。不知道如何定位 'feature_img_id' 数组并将其与资产 ID 匹配并将其添加到 $processedProducts 中。请查看获得想法所需的结果。


长风秋雁
浏览 183回答 1
1回答

一只甜甜圈

你可以这样做:$dData = '[            {                "products": [                    {                        "Part ID" : "001",                        "name" : "Product Name",                        "category" : "Product Category",                        "description" : "Product Description",                        "id" : "111xyz"                    },                    {                        "Part ID" : "002",                        "name" : "Product Name 2",                        "category" : "Product Category 2",                        "description" : "Product Description 2",                        "id" : "333xyz"                    },                    {                        "Part ID" : "003",                        "name" : "Product Name 3",                        "category" : "Product Category 3",                        "description" : "Product Description 3",                        "id" : "444xyz"                    },                      {                        "Part ID" : "004",                        "name" : "Product Name 4",                        "category" : "Product Category",                        "description" : "Product Description",                        "id" : "666xyz",                        "features_img_id":["f1","f2","f3"]                    }]                },                {                "assets": [                    {                        "File Name" : "Some file name",                        "url" : "www.123.com/x.jpg",                        "id" : "111xyz"                    },                    {                         "File Name" : "Feature 1 file",                        "url" : "www.123.com/f1.jpg",                        "id" : "f1"                    },                    {                         "File Name" : "Feature 2 file",                        "url" : "www.123.com/f2.jpg",                        "id" : "f2"                    },                    {                         "File Name" : "Feature 2 file",                        "url" : "www.123.com/f3.jpg",                        "id" : "f3"                    }]            }]';$data = json_decode($dData, false);$products = $data[0]->products;$assets = $data[1]->assets;$processedProducts = $products;foreach($processedProducts as $key => $product) {    foreach($assets as $asset) {        if ($asset->id == $product->id) {            $product->url = $asset->url;            }        if (isset($product->features_img_id) && in_array($asset->id, $product->features_img_id)) {            $product->feature_image_url[] = $asset->url;            }    }    unset($product->id);    unset($product->features_img_id);}将导致以下结果数组:Array(    [0] => stdClass Object        (            [Part ID] => 001            [name] => Product Name            [category] => Product Category            [description] => Product Description            [url] => www.123.com/x.jpg        )    [1] => stdClass Object        (            [Part ID] => 002            [name] => Product Name 2            [category] => Product Category 2            [description] => Product Description 2        )    [2] => stdClass Object        (            [Part ID] => 003            [name] => Product Name 3            [category] => Product Category 3            [description] => Product Description 3        )    [3] => stdClass Object        (            [Part ID] => 004            [name] => Product Name 4            [category] => Product Category            [description] => Product Description            [feature_image_url] => Array                (                    [0] => www.123.com/f1.jpg                    [1] => www.123.com/f2.jpg                    [2] => www.123.com/f3.jpg                )        ))
随时随地看视频慕课网APP
我要回答