Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Json_Foreach - Fatal编程技术网

PHP中json解码数组的循环

PHP中json解码数组的循环,php,arrays,json,foreach,Php,Arrays,Json,Foreach,我有Json格式的数据,我已经将其解码成php数组,打印出来后生成以下内容(只是一段信息) 我的问题是如何循环浏览这些信息,打印标题,然后打印值 我尝试了以下方法,一次打印所有数据 foreach($data['SubTitle'] as $key => $value){ echo $value; } 然后我试着打印信息部分,我认为这可能会起作用,但是却抛出了一个非法的字符串偏移量错误 foreach($data['SubTitle'] as $key =>

我有Json格式的数据,我已经将其解码成php数组,打印出来后生成以下内容(只是一段信息)

我的问题是如何循环浏览这些信息,打印标题,然后打印值

我尝试了以下方法,一次打印所有数据

  foreach($data['SubTitle'] as $key => $value){

    echo $value;
   }
然后我试着打印信息部分,我认为这可能会起作用,但是却抛出了一个非法的字符串偏移量错误

   foreach($data['SubTitle'] as $key => $v){

    echo $v['Info'];
   }
我可以从标题数组中获取信息,因为它是直接的,因为它在标题中只有数据值。但是,我希望字幕数组的输出打印标题和信息,如下所示:

欢迎来到公司名称

有关该公司的资料


我原以为这将是直截了当的,但事实证明这比预期的要困难得多,并且已经占用了很多时间,所以任何帮助都将不胜感激

从以下内容更改代码:

foreach($data['SubTitle'] as $key => $v){
    echo $v['Info'];
}
为此:

foreach($data['SubTitle'] as $v){
    echo $v . "<br/>"; // the <br/> makes a new line
}
$v不再是foreach中的数组,而是一个变量

有关html标记的一些信息:


还要看看循环是如何工作的:

所以我假设您有一个JSON字符串,如下所示:

$json = '{"Title":{"Heading": "Company Name", "Info": null}, "SubTitle": {"Heading": "Welcome to Company Name", "Info": "information on the company"}}';
可视化的,看起来像这样:

$json = '{"Title":{"Heading": "Company Name", "Info": null}, "SubTitle": {"Heading": "Welcome to Company Name", "Info": "information on the company"}}';

因此,如果您已将此json解码为关联数组:

$result = json_decode($json, true);
然后,为了访问数据,您不需要对其进行“循环”;您需要做的只是:

echo $result['Title']['Heading']; // will print 'Company Name'
echo $result['Title']['Info']; // will print nothing, as it is empty
echo $result['SubTitle']['Heading']; // will print 'Welcome to Company Name'
echo $result['SubTitle']['Info']; // will print 'information on the company'
希望这有帮助。这是基础php,请阅读以下阅读材料:


请编辑问题并准确写出您希望输出的内容。取决于您输入的数组。
echo$v将足够我编辑我的问题,以显示我希望实现的输出。如果您能提供任何信息,请提前向我们表示感谢help@catcon我尝试了echo v,它在一个输出中打印所有信息,但我要求信息分开。它不是在一个输出中打印所有信息,而是分别通过每个项目和
echo
每个项目。您需要分隔信息,您可以通过添加空格/新行/用div/等将其包装,即:
echo“$v”
echo $result['Title']['Heading']; // will print 'Company Name'
echo $result['Title']['Info']; // will print nothing, as it is empty
echo $result['SubTitle']['Heading']; // will print 'Welcome to Company Name'
echo $result['SubTitle']['Info']; // will print 'information on the company'