Javascript php中的json_解码数组-获取键和值
我有一个通过javascript/jquery的POST请求得到的数组。在php中,数组内容如下所示:Javascript php中的json_解码数组-获取键和值,javascript,php,Javascript,Php,我有一个通过javascript/jquery的POST请求得到的数组。在php中,数组内容如下所示: [{"name":"Ta","def":"somestring"},{"name":"WSCall","def":"somestring"},{"name":"manual","def":"somestring"}] 如何迭代该数组以获取键和值 当我这样做时:json\u解码($\u POST['shape\u defs']) 如何迭代这个数组。为每个人做foreach表示: 为foreac
[{"name":"Ta","def":"somestring"},{"name":"WSCall","def":"somestring"},{"name":"manual","def":"somestring"}]
如何迭代该数组以获取键和值
当我这样做时:json\u解码($\u POST['shape\u defs'])
如何迭代这个数组。为每个人做foreach
表示:
为foreach()提供的参数无效
$j='[{“name”:“Ta”,“def”:“somestring”},{“name”:“WSCall”,“def”:“somestring”},{“name”:“manual”,“def”:“somestring”}];
$data=json_decode($j,true);
foreach($key=>$val的数据){
foreach($val为$k=>$v){
回显“键:.$k.”值:.$v.“
”;
}
}
当有一定数量的子循环时,可以使用嵌套的foreach循环:
$json = '[{"name":"Ta","def":"somestring"},{"name":"WSCall","def":"somestring"}, {"name":"manual","def":"somestring"}]';
$decode = json_decode($json, true);
foreach ($decode as $k1 => $v1) {
foreach ($v1 as $k2 => $v2) {
echo "$k2: $v2, ";
}
echo "<br>";
}
$json='[{“name”:“Ta”,“def”:“somestring”},{“name”:“WSCall”,“def”:“somestring”},{“name”:“manual”,“def”:“somestring”}];
$decode=json_decode($json,true);
foreach($k1=>v1){
foreach($v1为$k2=>$v2){
回声“$k2:$v2”;
}
回声“
”;
}
它将输出以下内容:
name: Ta, def: somestring, <br>
name: WSCall, def: somestring, <br>
name: manual, def: somestring, <br>
name:Ta,def:somestring,
名称:WSCall,定义:somestring,
名称:手动,定义:somestring,
虽然(当前)其他两个答案确实得到了有效的代码,但它们无法说明为什么会出现错误
$data = json_decode($j);
var_dump($data);
这将生成一个对象,并将关键点作为属性。除非对象实现了可遍历
,否则传递给foreach
的对象无效
您需要做的是:
$data = json_decode($j,true);
这将使对象变为关联数组,它们与
foreach
兼容,并且很可能与代码的其余部分兼容。您是否对结果进行了json解码?如果不传递第二个布尔参数,我没有收到任何错误?如果执行var\u dump($data)
操作,则它包含在foreach中有效的对象数组
$data = json_decode($j,true);