PHP使用json_解码获取json数据

PHP使用json_解码获取json数据,php,json,knockout.js,Php,Json,Knockout.js,我是PHP新手,尝试从json中回显一些数据,但我在这方面遇到了麻烦 它显示的不是所有的数据,但数据都在那里。var\u dump()向我显示了它 可能我没有正确使用数组,但我找不到哪里出了问题。我有这个密码 我请求使用knockout.js Knockout给了我一个json(如下所示) 您应该使用这样的循环: foreach ($data as $optie ) { echo "name = " . $optie['name'] . "<br>"; echo "

我是PHP新手,尝试从json中回显一些数据,但我在这方面遇到了麻烦

它显示的不是所有的数据,但数据都在那里。
var\u dump()
向我显示了它

可能我没有正确使用数组,但我找不到哪里出了问题。我有这个密码

我请求使用
knockout.js

Knockout给了我一个json(如下所示)


您应该使用这样的循环:

foreach ($data  as $optie ) {
    echo "name = " . $optie['name'] . "<br>";
    echo "optie  = " . $optie['optie']['optieName'] . "<br>";
    echo "prijs    = " . $optie['optie']['prijs']. "<br>";
}
而不是

$data = json_decode($json, true);
然后您应该使用以下循环:

foreach ($data  as $optie ) {
    echo "name = " . $optie->name . "<br>";
    echo "optie  = " . $optie->optie->optieName . "<br>";
    echo "prijs    = " . $optie->optie->prijs. "<br>";
}
foreach($optie形式的数据){
echo“name=”.$optie->name。“
”; 回显“optie=”.$optie->optie->optieName。“
”; echo“prijs=”.$optie->optie->prijs。“
”; }
您已经在您的
json_decode()
上使用了
true
标志,该值现在是一个数组,所以像一个数组一样访问它,您有一个拼写错误(我猜)
$\u请求[座位]
(缺少引号)更正了我的第一条评论:您的$data是一个数组,而不是一个对象,因此,请以
$optie['name'的形式访问值
等等,而不是
$optie->name
。此外,正如我之前所说,我不理解它是如何工作的,因为
$请求[座位]
应该是
$请求[座位]
您将其解码为
数组
(在
json_decode()
中设置为
true
)的第二个参数,因此您必须像数组一样访问它:
$optio['name']
。这是您应该执行的操作。好的,谢谢,这是我需要的,它现在可以工作了:)
$data = json_decode($json);
$data = json_decode($json, true);
foreach ($data  as $optie ) {
    echo "name = " . $optie->name . "<br>";
    echo "optie  = " . $optie->optie->optieName . "<br>";
    echo "prijs    = " . $optie->optie->prijs. "<br>";
}