首页 > 解决方案 > 我有一个数组

问题描述

我有一个数组:-我从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'];
}

标签: php

解决方案


你可以试试这个把这个代码放在你的数组下面并运行。

    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;

推荐阅读