首页 > 解决方案 > 如何在三个列表列中使用 PHP 解码 JSON?

问题描述

我是使用 JSON 和 PHP 的新手。我有一个很大的 JSON 产品列表,这些产品正在通过 PHP 解码,我需要将此列表拆分为 3 列。我怎样才能做到这一点?这是我现在使用的代码:

<div class="col-md-4">
    <div class="section-title">
        <ul class="dados">
            <?php
                $url = 'http://myurl/consult';
                $data = file_get_contents($url);
                $characters = json_decode($data);
                foreach ($characters as $character) {
            ?>
            <li class="nomes-ies"><a href="#" class="nomes-ies"><?php echo $character->nome . '</a></li>'; } ?>
        </ul>
    </div>
</div>

标签: phpcssjsonforeachdecode

解决方案


您可以使用array_chunk()将数组拆分为三个元素。然后,在这个数组上使用 foreach,围绕<div class="col-md-4">

<?php
    $url = 'http://myurl/consult';
    $data = file_get_contents($url);
    $characters = json_decode($data);
    $cols = array_chunk($characters, ceil(count($characters) / 3));
    foreach ($cols as $data) {
?>
<div class="col-md-4">
    <div class="section-title">
        <ul class="dados">
            <?php foreach ($data as $character) { ?>
            <li class="nomes-ies"><a href="#" class="nomes-ies"><?php echo $character->nome ?></a></li>
            <?php } ?>
        </ul>
    </div>
</div>
<?php } // end foreach $cols ?>

请注意,array_chunk()必须计算其中使用的元素数ceil()以避免获得 4 列。最后一列的元素可能比另一列少。


推荐阅读