Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组的json字符串_Php - Fatal编程技术网

php数组的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字符串如下所示:

$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的可能重复项