PHP关联数组的JSON

I have an associative array as below

$arraySapmle =  array ("benz" => "car","bmw" => "car","volvo" = "car",
                      "delhi" => "place", "newyork" => "place", "tokyo" =>"place" );

and I need a json like this

$json = [
        "car": {
                 "name" : "benz",
"name" : "bmw",
"name" : "volvo"
},
"place" : {
"name" : "delhi",
"name" : "newyork",
"name" : "tokyo"
}
]

Have any idea?

The closest you will get to that structure is having each top level property (car, place) contain an array of objects with name properties:

$restructured=[];
foreach($arraySample as $key=>$val)
    $restructured[$val][]=['name'=>$key];
echo json_encode($restructured, JSON_PRETTY_PRINT);

Output:

{
    "car": [
        {
            "name": "benz"
        },
        {
            "name": "bmw"
        },
        {
            "name": "volvo"
        }
    ],
    "place": [
        {
            "name": "delhi"
        },
        {
            "name": "newyork"
        },
        {
            "name": "tokyo"
        }
    ]
}

This will generate an array which has a key for "car" and "place", the value of which is an array of cars and places:

$array = array();
foreach($arraySample as $key => $value){
  if(!isset($array[$value])) $array[$value] = array();
  $array[$value][] = $key;
}
$json = json_encode($array);

It is not quite the data structure you asked for, but it is one that makes sense.