我有一些我需要组织的数据,所以我可以将其转换为JSON。我通过查询获得数据,该查询给出了结果。一些结果是:
NAME - NUMBER, Direction, Color
ABCD - 1, Left, Blue
ABCD - 2, Right, Red
ABCD - 3, Down, Green
EFGH - 1, UP, Yellow
EFGH - 2, Down, Orange
我需要将这些数据转换成这样的东西(所以我可以json_encode它):
$array = array({
'name'=>'ABCD'
[{ 'number'=>'1', 'direction'=>'left', 'color'=>'blue'}
{ 'number'=>'2', 'direction'=>'right', 'color'=>'red' }
{ 'number'=>'3', 'direction'=>'down', 'color'=>'green' }
]}
{ 'name'=>'EFGH'
[{ 'number'=>'1', 'direction'=>'up', 'color'=>'yellow' }
{ 'number'=>'2', 'direction'=>'down', 'color'=>'orange' }
]}
);
不确定它是否正确完成,但我想结果应该如何。
答案 0 :(得分:0)
生成有效数组,然后生成json_encode()
:
<?php
$array = [
'ABCD' => [
['number'=>'1', 'direction'=>'left', 'color'=>'green'],
['number'=>'2', 'direction'=>'right', 'color'=>'red'],
['number'=>'3', 'direction'=>'down', 'color'=>'green']
],
'EFGH' => [
['number'=>'1', 'direction'=>'up', 'color'=>'yellow'],
['number'=>'2', 'direction'=>'down', 'color'=>'orange']
]
];
echo json_encode($array);
使用echo $array['EFGH'][0]['direction'];
答案 1 :(得分:0)
首先生成一个与您建议的类似的数组。然后json_encode它:
<?php
$data = array(
array("NAME" =>"ABCD", "NUMBER" => "1", "Direction" => "Left", "Color" => "Blue"),
array("NAME" =>"ABCD", "NUMBER" => "2", "Direction" => "Right", "Color" => "Red"),
array("NAME" =>"ABCD", "NUMBER" => "3", "Direction" => "Down", "Color" => "Green"),
array("NAME" =>"EFGH", "NUMBER" => "1", "Direction" => "UP", "Color" => "Yellow"),
array("NAME" =>"EFGH", "NUMBER" => "2", "Direction" => "Down", "Color" => "Orange")
);
$output = array();
foreach($data as $array) {
$key = $array["NAME"];
if(!isset($output[$key])) $output[$key] = array();
$output[$key][] = $array;
}
//echo "<PRE>";
//print_r($output);
//echo "</PRE>";
echo json_encode($output);
?>