php - 我有一个数组
问题描述
我有一个数组:-我从print_r
函数中获取这些值。
Array
(
[0] => Array
(
[country] => Austria
[state] => Salzburg
[city] => Salzburg
)
[1] => Array
(
[country] => United States
[state] => California
[city] => San Diego County
)
[2] => Array
(
[country] => United States
[state] => California
[city] => San Francisco City and County
)
[3] => Array
(
[country] => United States
[state] => California
[city] => Santa Clara County
)
[4] => Array
(
[country] => United States
[state] => Texas
[city] => Harris County
)
[5] => Array
(
[country] => United Kingdom
[state] => England
[city] => Greater London
)
[6] => Array
(
[country] => China
[state] =>
[city] => Hong Kong Island
)
[7] => Array
(
[country] => India
[state] => Andhra Pradesh
[city] => Chittoor ,Andhra Pradesh
)
[8] => Array
(
[country] => India
[state] => Andhra Pradesh
[city] => Krishna ,Andhra Pradesh
)
[9] => Array
(
[country] => India
[state] => Andhra Pradesh
[city] => Visakhapatnam ,Andhra Pradesh
)
[10] => Array
(
[country] => India
[state] => Assam
[city] => Kamrup
)
[11] => Array
(
[country] => India
[state] => Bihar
[city] => Aurangabad,Bihar
)
[12] => Array
(
[country] => India
[state] => Goa
[city] => North Goa
)
[13] => Array
(
[country] => India
[state] => Jammu and Kashmir
[city] => Jammu
)
[14] => Array
(
[country] => India
[state] => Karnataka
[city] => Bangalore
)
[15] => Array
(
[country] => India
[state] => Karnataka
[city] => Chamarajanagar ,Karnataka
)
[16] => Array
(
[country] => India
[state] => Karnataka
[city] => Chikkaballapura ,Karnataka
)
[17] => Array
(
[country] => India
[state] => Karnataka
[city] => Chikkamagaluru ,Karnataka
)
[18] => Array
(
[country] => India
[state] => Karnataka
[city] => Hassan ,Karnataka
)
[19] => Array
(
[country] => India
[state] => Karnataka
[city] => Mandya ,Karnataka
)
[20] => Array
(
[country] => India
[state] => Karnataka
[city] => Mysuru ,Karnataka
)
[21] => Array
(
[country] => India
[state] => Karnataka
[city] => Ramanagara ,Karnataka
)
[22] => Array
(
[country] => India
[state] => Karnataka
[city] => Shimoga ,Karnataka
)
[23] => Array
(
[country] => India
[state] => Karnataka
[city] => Udupi ,Karnataka
)
[24] => Array
(
[country] => India
[state] => Karnataka
[city] => Uttara Kannada
)
[25] => Array
(
[country] => India
[state] => Kerala
[city] => Ernakulam
)
[26] => Array
(
[country] => India
[state] => Kerala
[city] => Kollam
)
[27] => Array
(
[country] => India
[state] => Kerala
[city] => Thiruvananthapuram
)
[28] => Array
(
[country] => India
[state] => Kerala
[city] => Wayanad
)
[29] => Array
(
[country] => India
[state] => Maharashtra
[city] => Konkan Division
)
[30] => Array
(
[country] => India
[state] => Maharashtra
[city] => Pune
)
[31] => Array
(
[country] => India
[state] => Punjab
[city] => Amritsar
)
[32] => Array
(
[country] => India
[state] => Sikkim
[city] => South Sikkim ,Sikkim
)
[33] => Array
(
[country] => India
[state] => Sikkim
[city] => West Sikkim ,Sikkim
)
[34] => Array
(
[country] => India
[state] => Tamil Nadu
[city] => Cuddalore ,Tamil Nadu
)
[35] => Array
(
[country] => India
[state] => Tamil Nadu
[city] => Dharmapuri ,Tamil Nadu
)
[36] => Array
(
[country] => India
[state] => Tamil Nadu
[city] => Dindigul ,Tamil Nadu
)
[37] => Array
(
[country] => India
[state] => Tamil Nadu
[city] => Kanchipuram ,Tamil Nadu
)
[38] => Array
(
[country] => India
[state] => Tamil Nadu
[city] => Nagapattinam ,Tamil Nadu
)
[39] => Array
(
[country] => India
[state] => Tamil Nadu
[city] => The Nilgiris ,Tamil Nadu
)
[40] => Array
(
[country] => India
[state] => Tamil Nadu
[city] => Tirunelveli Kattabo
)
[41] => Array
(
[country] => India
[state] => Tamil Nadu
[city] => Viluppuram ,Tamil Nadu
)
[42] => Array
(
[country] => India
[state] => Telangana
[city] => Hyderabad
)
[43] => Array
(
[country] => India
[state] => Telangana
[city] => Rangareddy ,Telangana
)
[44] => Array
(
[country] => India
[state] => Telangana
[city] => Telangana
)
[45] => Array
(
[country] => India
[state] => Telangana
[city] => Yadadri Bhuvanagiri
)
[46] => Array
(
[country] => India
[state] => Uttar Pradesh
[city] => Ghaziabad
)
[47] => Array
(
[country] => India
[state] => Uttar Pradesh
[city] => Meerut
)
[48] => Array
(
[country] => India
[state] => Uttarakhand
[city] => Uttarakhand
)
[49] => Array
(
[country] => India
[state] => West Bengal
[city] => Darjeeling
)
[50] => Array
(
[country] => India
[state] => West Bengal
[city] => Paschim Medinipur
)
[51] => Array
(
[country] => India
[state] => West Bengal
[city] => West Bengal
)
[52] => Array
(
[country] => Thailand
[state] => Bangkok
[city] => Pathum Wan ,Bangkok
)
[53] => Array
(
[country] => Thailand
[state] => Bangkok
[city] => Phasi Charoen ,Bangkok
)
[54] => Array
(
[country] => Myanmar
[state] => Yangon
[city] => Yangon
)
)
问题是我想做:下面的输出请帮助:-
{
"result": "SUCCESS",
"records": [
{
country : india,
states : [
{
state : karnataka
cities : [bangalore,mysore]
},
{
state : Tamilnadu
cities : [chennai,coimbutore]
}
]
},
{
country : US,
states : [
{
state : ohiao
cities : [city 1,city 2]
},
{
state : california
cities : [city 1,city 2]
}
]
}
]
}
我试过循环这个。
foreach ($returnData as $key => $value) {
$actual_response[$value['country']][$value['state']][]=$value['city'];
}
解决方案
你可以试试这个把这个代码放在你的数组下面并运行。
function nested($item)
{
if (count($item) > 1)
{
$key = array_shift($item);
return array($key => nested($item));
}
else
{
return $item;
}
}
$finalArr = array();
foreach($arr as $data)
{
$finalArr = array_merge_recursive($finalArr, nested($data));
}
$finalArr = array_values($finalArr);
echo json_encode(array("result"=>"SUCCESS" ,"records"=>$finalArr) );exit;