随机解析JSON中的11个项目并以HTML显示

时间:2018-10-07 10:02:27

标签: php arrays json

我是新手。

我有一个包含名称和URL的JSON文件。我要做的就是从JSON对象中随机选择11个项目,并将其显示为HTML。

我可以解析并随机转储JSON的内容,但是我不知道该怎么做。我正在考虑使用foreach来打印html,但我不知道如何从JSON对象中获取项目。

这是我脑海中的项目;

<div class="custom-top-tags">
<div class="sm-top-tags-title">Öne Çıkanlar:</div>
<div class="sm-top-tags-keywords">
<ul class="sm-top-tags-keywords-list">
 <?php foreach($array as $key=>$value){ ?>
<li><a href="<?php echo $key[link]; ?>"><?php echo $key[urun]; ?></a></li>
 <?php } ?>
</ul>
</div>
</div>

但是不幸的是,我不知道如何通过从JSON文件中随机选择的11个项目来填充$key[link]$key[name]变量。

这是我当前拥有的代码;

$json = file_get_contents('./includes/one-cikanlar.json');
$json_data = json_decode($json,true);

shuffle($json_data);

echo $json_data;

这是JSON结构;

 {
   "urunler": [
     {
       "urun":"Matkap",
       "link":"makina-grubu?keyword=Matkap"
     },
     {
       "urun":"İş Eldivenleri",
       "link":"eldiven-grubu"      
     },
     {
       "urun":"Mikser & Karıştırıcı",
       "link":"shop?keyword=Karıştırıcı"
       },
     {
       "urun":"Silikon",
       "link":"shop?keyword=Silikon"
       },
     {
       "urun":"Tangitt",
       "link":"shop?keyword=Tangit"
       },
     {
       "urun":"Lokma Takımı",
       "link":"shop?keyword=Lokma+Takımı"
       },
     ...                                              
   ]
 }

总而言之,我需要从JSON中的urunler对象中随机选择11个项目,并将这些选择的项目打印到HTML中。

我正在等待您的建议和帮助。预先感谢

1 个答案:

答案 0 :(得分:2)

包含项的数组位于$json_data['urunler'];中,而不是$json_data中,因此您可以将其改组并使用例如for循环来获取11个项。

<?php
$json_data = json_decode($json, true);
shuffle($json_data['urunler']);
?>
<div class="custom-top-tags">
    <div class="sm-top-tags-title">Öne Çıkanlar:</div>
    <div class="sm-top-tags-keywords">
        <ul class="sm-top-tags-keywords-list">
            <?php for ($i = 0; $i < 11; $i++) { ?>
                <li><a href="<?php echo $json_data['urunler'][$i]['link']; ?>"><?php echo $json_data['urunler'][$i]['urun']; ?></a></li>
            <?php } ?>
        </ul>
    </div>
</div>

Demo php