在php中从json获取特定项

在php中从json获取特定项,php,arrays,json,Php,Arrays,Json,您好,我在这里看到了几个类似的问题,但我发现没有一个是有用的。我整晚都在想办法解决这个问题,如果我能给出一个直截了当的答案,我会非常感激的。我试图从json输出中获得一个特定的东西。在python中,我知道如何做到这一点,但我不知道如何在php中实现这一点。json输出是 {"sentences":[{"trans":"ã“ã‚“ã«ã¡ã¯","orig":"hello","translit":"Kon'nichiwa","src_translit":""}],"dict":[{"pos":"

您好,我在这里看到了几个类似的问题,但我发现没有一个是有用的。我整晚都在想办法解决这个问题,如果我能给出一个直截了当的答案,我会非常感激的。我试图从json输出中获得一个特定的东西。在python中,我知道如何做到这一点,但我不知道如何在php中实现这一点。json输出是

{"sentences":[{"trans":"ã“ã‚“ã«ã¡ã¯","orig":"hello","translit":"Kon'nichiwa","src_translit":""}],"dict":[{"pos":"nom","terms":["今日ã¯"],"entry":[{"word":"今日ã¯","reverse_translation":["hello","good day"]}],"base_form":"hello","pos_enum":1}],"src":"en","spell":{"spell_html_res":"Hello!","spell_res":"Hello!","correction_type":[10],"related":1},"server_time":2}
我想从中得到的只是“trans”,我知道你必须用foreach来做这件事。我试过了

$jsondata = json_decode($jsonstuff);
foreach($jsondata as $ret->sentences) {
$rets = $ret->trans;}
print $rets;
然而,这没有任何作用。如果有人能帮忙,我们将不胜感激。

试试看

$jsondata = json_decode($jsonstuff);
foreach($jsondata->sentences as $ret) {
    $rets = $ret->trans;
    print $rets;
}

在这种情况下,让json_decode返回数组而不是php对象可能会有所帮助。您可以通过添加可选的第二个参数来实现这一点

由于示例中的句子是数组,您可以看到,至少通过此输入,您可以通过引用数组的元素0轻松地访问trans元素

$jsondata = json_decode($jsonstuff, true);

echo $jsondata['sentences'][0]['trans'];

// See full array
var_dump($jsondata);

必须格式化foreach代码

foreach($jsondata->句子为$ret){
instend of

foreach($jsondata as $ret->sentences) {
格式化代码

$jsondata = json_decode($jsonstuff);
foreach($jsondata->sentences as $ret) {
    $rets = $ret->trans;
    print $rets;
}

这段代码看起来很奇怪哦,哇,我不敢相信我错过了。但是谢谢。解决了这个问题。顺便说一句,当使用这样的变量名(例如$ret和$rets)时,我经常在某个地方遇到麻烦。我应该知道,因为我长期不擅长命名变量、函数和类。这个问题似乎离题了,因为OP不知道
foreach
循环的语法,要解释它显然超出了热心程序员和专业程序员的网站范围。