php数组的json字符串
我的json字符串如下所示:php数组的json字符串,php,Php,我的json字符串如下所示: $json = '[{"sessionNo":"1","sessionData":["4","6"]},{"sessionNo":"2","sessionData":["2"]},{"sessionNo":"3"}]'; 我想把它“翻译”成PHP数组。我尝试执行以下操作,但它返回一个空数组: var_dump(json_decode($json)) **UPDATE** 现在我明白了: array (size=3) 0 => array (
$json = '[{"sessionNo":"1","sessionData":["4","6"]},{"sessionNo":"2","sessionData":["2"]},{"sessionNo":"3"}]';
我想把它“翻译”成PHP数组。我尝试执行以下操作,但它返回一个空数组:
var_dump(json_decode($json))
**UPDATE**
现在我明白了:
array (size=3)
0 =>
array (size=2)
'sessionNo' => string '1' (length=1)
'sessionData' =>
array (size=2)
0 => string '4' (length=1)
1 => string '6' (length=1)
1 =>
array (size=2)
'sessionNo' => string '2' (length=1)
'sessionData' =>
array (size=1)
0 => string '2' (length=1)
2 =>
array (size=1)
'sessionNo' => string '3' (length=1)
我想循环遍历此数组,以便为每个sessionNo
获取相应的SessionData
,如:
sessionNo SessionData
1 4
1 6
2 2
你可以使用像
$json = '[{"sessionNo":"1","sessionData":["4","6"]},{"sessionNo":"2","sessionData":["2"]},{"sessionNo":"3"}]';
$array = json_decode($json, true);
foreach ( $array as $session ) {
if ( isset ($session['sessionData'])){
foreach ( $session['sessionData'] as $data ) {
echo $session['sessionNo']."-".$data.PHP_EOL;
}
}
}
这只是转换数据,然后在foreach()
中循环数组,只有在有sessionData的情况下才执行内部循环。
这将输出
1-4
1-6
2-2
这不是有效的JSON,它不会返回空数组,而是返回null@iainn你是对的,这是我的错对不起,我错了it@DaniM您的更新版本运行良好,请参见通过在其周围放置方括号将其转换为列表,而不是curlies@liorahaydontp的可能重复项