PHP 数组输出为 JSON 格式

lil*_*lzz 4 php json

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\"}"}

Adi*_*ana 5

试试这个简单的命令

$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)


Ale*_*tis 3

我不明白你为什么不这样写:

<?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)

这不是预期的结果吗?