[英]Need help in array manipulation
代碼語言:PHP
實際上,我不是數組操作方面的專家,我嘗試了太多但沒有成功。 請檢查以下數組我想轉換它。
我有這種類型的數組
[
{
"user_id": "1",
"name": "A",
"product": "Product A",
"price": "456"
},
{
"user_id": "1",
"name": "A",
"product": "Product B",
"price": "255"
},
{
"user_id": "1",
"name": "A",
"product": "Product C",
"price": "111"
},
{
"user_id": "2",
"name": "B",
"product": "Product D",
"price": "888"
},
{
"user_id": "2",
"name": "B",
"product": "Product E",
"price": "408"
}
]
我想將其轉換為以下
[
{
"user_id": "1",
"name": "A",
"product_data": [
{
"product": "Product A",
"price": "456"
},
{
"product": "Product B",
"price": "255"
},
{
"product": "Product C",
"price": "111"
}
]
},
{
"user_id": "2",
"name": "B",
"product_data": [
{
"product": "Product D",
"price": "888"
},
{
"product": "Product E",
"price": "408"
}
]
}
]
請幫我解決這個問題..
您可以通過 foreach() 和 array_key_exists() 函數來實現這一點。 請看下面的代碼,它可能對你有幫助:
<?php
$json ='[{
"user_id": "1",
"name": "A",
"product": "Product A",
"price": "456"
},
{
"user_id": "1",
"name": "A",
"product": "Product B",
"price": "255"
},
{
"user_id": "1",
"name": "A",
"product": "Product C",
"price": "111"
},
{
"user_id": "2",
"name": "B",
"product": "Product D",
"price": "888"
},
{
"user_id": "2",
"name": "B",
"product": "Product E",
"price": "408"
}]';
$source_array = json_decode($json);
$result_arry = array();
foreach($source_array as $entry)
{
if(array_key_exists($entry->user_id,$result_arry))
{
$result_arry[$entry->user_id]['product_data'][] = array('product' => $entry->product,'price'=>$entry->price);
}
else
{
$result_arry[$entry->user_id] = array('user_id' =>$entry->user_id,'name'=>$entry->name,'product_data'=>array());
$result_arry[$entry->user_id]['product_data'][] = array('product' => $entry->product,'price'=>$entry->price);
}
}
print_r($result_arry);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.