我将这个PHP数组转换为json数组:
array(
'results' => array(
(int) 0 => array(
'unit_id' => '1',
'unit_number' => '36-1',
'unit_block' => 'PH1A',
'unit_type' => 'River / Sea Facing',
'unit_square_feet' => '1238',
'unit_direction' => 'NW',
'unit_level' => '36',
'unit_price' => '793000',
'book_status' => null
),
(int) 1 => array(
'unit_id' => '2',
'unit_number' => '36-2',
'unit_block' => 'PH3A',
'unit_type' => 'River / Sea Facing',
'unit_square_feet' => '1518',
'unit_direction' => 'NW',
'unit_level' => '36',
'unit_price' => '996000',
'book_status' => 'booked'
),
(int) 2 => array(
'unit_id' => '3',
'unit_number' => '36-5',
'unit_block' => 'PH1B',
'unit_type' => 'City Facing',
'unit_square_feet' => '1238',
'unit_direction' => 'SE',
'unit_level' => '36',
'unit_price' => '793000',
'book_status' => null
),
(int) 3 => array(
'unit_id' => '4',
'unit_number' => '36-6',
'unit_block' => 'P3B',
'unit_type' => 'City Facing',
'unit_square_feet' => '1518',
'unit_direction' => 'SE',
'unit_level' => '36',
'unit_price' => '996000',
'book_status' => null
),
),
);
如果我想像下面这个结构那样返回json数组吗?
{
"results":
[
{
"unit_id": "1",
"unit_number": "36-1",
"unit_block": "PH1A",
"unit_type": "River \/ Sea Facing",
"unit_square_feet": "1238",
"unit_direction": "NW",
"unit_level": "36",
"unit_price": "793000",
"book_status": null
}
],
[
{
"unit_id": "2",
"unit_number": "36-2",
"unit_block": "PH3A",
"unit_type": "River \/ Sea Facing",
"unit_square_feet": "1518",
"unit_direction": "NW",
"unit_level": "36",
"unit_price": "996000",
"book_status": "booked"
}
],
[
{
"unit_id": "3",
"unit_number": "36-5",
"unit_block": "PH1B",
"unit_type": "City Facing",
"unit_square_feet": "1238",
"unit_direction": "SE",
"unit_level": "36",
"unit_price": "793000",
"book_status": null
}
],
[
{
"unit_id": "4",
"unit_number": "36-6",
"unit_block": "P3B",
"unit_type": "City Facing",
"unit_square_feet": "1518",
"unit_direction": "SE",
"unit_level": "36",
"unit_price": "996000",
"book_status": null
}
],
}
当前返回的json数组结构。注意到“结果”之后还有一个数组。
{
"results": [
[
{
"unit_id": "1",
"unit_number": "36-1",
"unit_block": "PH1A",
"unit_type": "River \/ Sea Facing",
"unit_square_feet": "1238",
"unit_direction": "NW",
"unit_level": "36",
"unit_price": "793000",
"book_status": null
}
],
[
{
"unit_id": "2",
"unit_number": "36-2",
"unit_block": "PH3A",
"unit_type": "River \/ Sea Facing",
"unit_square_feet": "1518",
"unit_direction": "NW",
"unit_level": "36",
"unit_price": "996000",
"book_status": "booked"
}
],
[
{
"unit_id": "3",
"unit_number": "36-5",
"unit_block": "PH1B",
"unit_type": "City Facing",
"unit_square_feet": "1238",
"unit_direction": "SE",
"unit_level": "36",
"unit_price": "793000",
"book_status": null
}
],
[
{
"unit_id": "4",
"unit_number": "36-6",
"unit_block": "P3B",
"unit_type": "City Facing",
"unit_square_feet": "1518",
"unit_direction": "SE",
"unit_level": "36",
"unit_price": "996000",
"book_status": null
}
],
]
}
到目前为止我的PHP代码:
$results = array();
foreach ($units as $key => $unit) {
$unit =
array(
'unit_id'=>$unit['Unit']['id'],
'unit_number'=>$unit['Unit']['unit_number'],
'unit_block' => $unit['Unit']['block'],
'unit_type' => $unit['UnitType']['name'],
'unit_square_feet' => $unit['Unit']['square_feet'],
'unit_direction' =>$unit['Unit']['direction'],
'unit_level' =>$unit['Unit']['level'],
'unit_price' =>$unit['Unit']['price'],
'book_status'=>$unit['Unit']['status']
);
$results['results'][$key] = array($unit);
}
return json_encode($results,JSON_PRETTY_PRINT);
编辑:
向anwser @roullie发表评论,以下是我将$results['results'][$key] = array($unit);
更改为$results['results'][$key] = $unit;
时的结果
{
"results": [
{
"unit_id": "1",
"unit_number": "36-1",
"unit_block": "PH1A",
"unit_type": "River \/ Sea Facing",
"unit_square_feet": "1238",
"unit_direction": "NW",
"unit_level": "36",
"unit_price": "793000",
"book_status": null
},
{
"unit_id": "2",
"unit_number": "36-2",
"unit_block": "PH3A",
"unit_type": "River \/ Sea Facing",
"unit_square_feet": "1518",
"unit_direction": "NW",
"unit_level": "36",
"unit_price": "996000",
"book_status": "booked"
},
]
}
答案 0 :(得分:0)
尝试以下逻辑:
$units = array(
'results' => array(
(int) 0 => array(
'unit_id' => '1',
'unit_number' => '36-1',
'unit_block' => 'PH1A',
'unit_type' => 'River / Sea Facing',
'unit_square_feet' => '1238',
'unit_direction' => 'NW',
'unit_level' => '36',
'unit_price' => '793000',
'book_status' => null
),
(int) 1 => array(
'unit_id' => '2',
'unit_number' => '36-2',
'unit_block' => 'PH3A',
'unit_type' => 'River / Sea Facing',
'unit_square_feet' => '1518',
'unit_direction' => 'NW',
'unit_level' => '36',
'unit_price' => '996000',
'book_status' => 'booked'
),
(int) 2 => array(
'unit_id' => '3',
'unit_number' => '36-5',
'unit_block' => 'PH1B',
'unit_type' => 'City Facing',
'unit_square_feet' => '1238',
'unit_direction' => 'SE',
'unit_level' => '36',
'unit_price' => '793000',
'book_status' => null
),
(int) 3 => array(
'unit_id' => '4',
'unit_number' => '36-6',
'unit_block' => 'P3B',
'unit_type' => 'City Facing',
'unit_square_feet' => '1518',
'unit_direction' => 'SE',
'unit_level' => '36',
'unit_price' => '996000',
'book_status' => null
),
),
);
$results = array();
foreach ($units['results'] as $key => $unit) {
$results['results'][] = array(
'unit_id'=>$unit['unit_id'],
'unit_number'=>$unit['unit_number'],
'unit_block' => $unit['unit_block'],
'unit_type' => $unit['unit_type'],
'unit_square_feet' => $unit['unit_square_feet'],
'unit_direction' =>$unit['unit_direction'],
'unit_level' =>$unit['unit_level'],
'unit_price' =>$unit['unit_price'],
'book_status'=>$unit['book_status']
);
}
echo json_encode($results,JSON_PRETTY_PRINT);