Произведите случайный анализ 11 элементов из JSON и отобразите в HTML - PullRequest
0 голосов
/ 07 октября 2018

Я новичок.

У меня есть файл JSON, который содержит имена и URL-адреса.Все, что я хочу сделать, это получить случайно выбранные 11 элементов из объекта JSON и отобразить их в 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>

Но, к сожалению,я не знаю, как заполнить переменные $key[link] и $key[name] случайно выбранными 11 элементами из файла JSON.

Вот мой текущий код;

$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ı"
       },
     ...                                              
   ]
 }

Подводя итог, мне нужно получить случайно выбранные 11 элементов из urunler объекта в JSON и распечатать эти выбранные элементы в HTML.

Я жду вашегопредложения и помощь.Заранее спасибо

1 Ответ

0 голосов
/ 07 октября 2018

Массив с элементами находится в $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

...