例如我有一组json格式的数据-
{
"data": [
{
"attributes": {
"product_listing_id": "1",
"master_categories": [
{
"master_category_id": 2165
}
]
},
"dirty": [],
"meta": [],
"client": {}
},
{
"attributes": {
"product_listing_id": "2",
"master_categories": [
{
"master_category_id": 2165
},
{
"master_category_id": 2166
},
{
"master_category_id": 2172
}
]
},
"dirty": [],
"meta": [],
"client": {}
}
]
}
我怎样才能将它转换成一个关联数组,它将“product_listing_id”字段作为键,“master_categories”作为它的值,为每个产品 ID 内爆 master_category_id。 喜欢
[1] => 2165,
[2] => 2165|2166|2172
非常感谢。 R
您可以使用以下代码将给定的 JSON 转换为所需的关联数组:
$json = '{
"data": [
{
"attributes": {
"product_listing_id": "1",
"master_categories": [
{
"master_category_id": 2165
}
]
},
"dirty": [],
"meta": [],
"client": {}
},
{
"attributes": {
"product_listing_id": "2",
"master_categories": [
{
"master_category_id": 2165
},
{
"master_category_id": 2166
},
{
"master_category_id": 2172
}
]
},
"dirty": [],
"meta": [],
"client": {}
}
]
}';
$data = json_decode($json, true);
$assocArray = array();
foreach($data['data'] as $datum) {
$id = $datum['attributes']['product_listing_id'];
$categories = array_column($datum['attributes']['master_categories'], 'master_category_id');
$assocArray[$id] = implode('|', $categories);
}
print_r($assocArray);
输出:
Array
(
[1] => 2165
[2] => 2165|2166|2172
)
此代码使用 json_decode() 函数将给定的 JSON 字符串转换为 PHP 关联数组。然后,它遍历每个数据对象并使用数组索引和 array_column() 函数提取 product_listing_id 和 master_category_id 值。最后,它使用 implode() 函数将 master_category_id 值连接成一个由 | 分隔的字符串。字符并将结果存储在以 product_listing_id 为键的关联数组中。