我第一次和json一起工作,很长一段时间以来第一次和php一起工作,我就这两个问题打了个网.
我已经创建了一个带有json feed的javascript文件,并且已经使用php成功解码它,现在可以访问数据(一次一个项目)但是当我尝试迭代它并吐出列表项时我遇到了麻烦使用所有数据.
任何帮助都将不胜感激.
josn看起来像这样:
{
"data": [
{
"name": "name1",
"alt": "name one",
"imgUrl": "img/icons/face1.png",
"linkUrl": "linkurl"
},
{
"name": "name2",
"alt": "name two",
"imgUrl": "img/icons/face2.png",
"linkUrl": "linkurl"
}
]
}
Run Code Online (Sandbox Code Playgroud)
和PHP:
<?php
$json_url = "js/tiles/jsonfeed.js";
$json = file_get_contents($json_url);
$links = json_decode($json, TRUE);
?>
<ul>
<li>
<a href="<?php echo $links['data'][1]['linkUrl'] ?>"><img scr="<?php echo $links['data'][1]['imgUrl']; ?>" alt="<?php echo $links['data'][1]['alt']; ?>" class="share-icon" /></a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
现在显然这只会获取第二个数组插槽中的信息,我知道有一种更有效的方法来编写列表项,而不会跳进和跳出php,这将很快被清除.
我遇到的问题是尝试将其包装在foreach循环中,以便为json feed中的每个项目吐出一个列表项.作为json的新手,并且在一段时间内没有触及php,我很难正确地格式化循环并获取适当的数据.
有人可以请我帮忙让这个工作正常吗?
谢谢
小智 7
您只需要预先处理数据,然后依次与每个孩子一起工作:
foreach ($links['data'] AS $d){
echo $d['linkUrl'];
}
Run Code Online (Sandbox Code Playgroud)
这应该做的工作:
<?php
$json_url = "js/tiles/jsonfeed.js";
$json = file_get_contents($json_url);
$links = json_decode($json, TRUE);
?>
<ul>
<?php
foreach($links['data'] as $key=>$val){
?>
<li>
<a href="<?php echo $val['linkUrl'] ?>">
<img scr="<?php echo $val['imgUrl']; ?>" alt="<?php echo $val['alt']; ?>" class="share-icon" />
</a>
</li>
<?php
}
?>
</ul>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35779 次 |
| 最近记录: |