PHP 数组
$grades = array( array( name => "tom",
grade => 'A'
),
array( name => "jeff",
grade=> 'B'
),
array( name => "lisa",
grade => 'C'
)
);
$output=array
( 'status'=>'ok',
'content'=>$grades
)
Run Code Online (Sandbox Code Playgroud)
我想看到的最终 JSON 输出是 {"status":'ok',"content":"{"tom":"A","jeff":"B","lisa":"B"}"}
问题是我应该如何操作数组,以便它可以给我像上面的 JSON 这样的最终输出?
会json_encode($output); echo $output做的伎俩吗?或者
我必须做吗
json_encode($grades) 然后是另一个,json_encodes($output)但我看到了额外的\东西,比如{"status":1,"content":"{\"tom\":\"A\",\"jeff\":\"B\",\"lisa\":\"B\"}"}
试试这个简单的命令
$my_array = [
"test" => "value",
"another" => [
"fruits" => ["Apple", "Orange"]
]
];
print_r(json_encode($my_array));
Run Code Online (Sandbox Code Playgroud)
它会产生
{
"test":"value",
"another":{
"fruits":["Apple","Orange"]
}
}
Run Code Online (Sandbox Code Playgroud)
我不明白你为什么不这样写:
<?php
$grades = array(
array(
'name' => 'tom',
'grade' => 'A'
),
array(
'name' => 'jeff',
'grade' => 'B'
),
array(
'name' => 'lisa',
'grade' => 'C'
),
);
$output = array(
'status' => 'ok',
'content' => $grades,
);
print_r(json_decode(json_encode($output)));
Run Code Online (Sandbox Code Playgroud)
它打印:
stdClass Object
(
[status] => ok
[content] => Array
(
[0] => stdClass Object
(
[name] => tom
[grade] => A
)
[1] => stdClass Object
(
[name] => jeff
[grade] => B
)
[2] => stdClass Object
(
[name] => lisa
[grade] => C
)
)
)
Run Code Online (Sandbox Code Playgroud)
这不是预期的结果吗?