簡體   English   中英

PHP將數組拆分為3個獨立的UL和列

[英]PHP Split array into 3 separate UL's and Columns

我在為需要實現的邏輯制定邏輯時遇到麻煩

在網頁上,我有一組結果動態生成的數組。 數組數可以是任何數字。 例如,一頁上可能有11個項目,而另一頁上可能有11個項目。

我需要將其分為3列和3個UL。

可以說該數組包含23個項目,所需的輸出為:

    <div class="column">
        <ul>
            <li>Item 1</li>
            <li>Item 2</li>
            <li>Item 3</li>
            <li>Item 4</li>
            <li>Item 5</li>
            <li>Item 6</li>
            <li>Item 7</li>
            <li>Item 8</li>
        </ul>
    </div>
    <div class="column">
        <ul>
            <li>Item 9</li>
            <li>Item 10</li>
            <li>Item 11</li>
            <li>Item 12</li>
            <li>Item 13</li>
            <li>Item 14</li>
            <li>Item 15</li>
            <li>Item 16</li>
        </ul>
    </div>
    <div class="column">
        <ul>
            <li>Item 17</li>
            <li>Item 18</li>
            <li>Item 19</li>
            <li>Item 20</li>
            <li>Item 21</li>
            <li>Item 22</li>
            <li>Item 23</li>
        </ul>
    </div>

項目按順序排列,並盡可能均分。 如果有奇數,那很好,因為如上所示,最后一列會少一些。

我試過使用array_chunk()

$ar_list = array("<li>Item 1</li>","<li>Item 2</li>","<li>Item 3</li>","<li>Item 4</li>","<li>Item 5</li>");
$lists = array_chunk($ar_list, 3);



foreach ($lists as $list) {
  echo '<ul>';
  echo $list;
  echo '</ul>';
}

但是,這返回:

數組

數組

數組

數組

數組

有人可以幫我得到以下內容:$ ar_list以輸出所需的效果嗎?

先感謝您

array_chunk函數的$size參數實際上是每個塊中的項目數, 而不是塊數。 為了獲得三個,您應該首先通過將數組的大小除以3,然后在array_chunk函數中使用該值四舍五入來計算每個塊中的項目數。 當遍歷數組時,需要一個嵌套循環來輸出每列的每個列表項。

像這樣:

<?php

$ar_list = array("<li>Item 1</li>","<li>Item 2</li>","<li>Item 3</li>","<li>Item 4</li>","<li>Item 5</li>");
$rows = ceil(count($ar_list) / 3);
$lists  = array_chunk($ar_list, $rows);

foreach ( $lists as $column) {
    echo '<ul>';
    foreach ($column as $item) {
        echo $item;
    }
    echo '</ul>';
}

@JamesG您將獲得“ Array”的輸出,因為您正在嘗試回顯“ Array”

在您的情況下,您應該使用print_r(Array)來顯示數組內部的內容

但是,如果要顯示數組的值,則代碼將如下所示
*假設您的$ ar_list中有23個項目

$ar_list = array("<li>Item 1</li>","<li>Item 2</li>","<li>Item 3</li>","<li>Item 4</li>","<li>Item 5</li>","<li>Item 6</li>","<li>Item 7</li>","<li>Item 8</li>","<li>Item 9</li>","<li>Item 10</li>","<li>Item 11</li>","<li>Item 12</li>","<li>Item 13</li>","<li>Item 14</li>","<li>Item 15</li>","<li>Item 16</li>","<li>Item 17</li>","<li>Item 18</li>","<li>Item 19</li>","<li>Item 20</li>","<li>Item 21</li>","<li>Item 22</li>","<li>Item 23</li>");
$lists = array_chunk($ar_list, 3);

foreach ($lists as $list) {
    echo '<ul>';
        foreach ($list as $value) {
            echo $value;
        }
    echo '</ul>';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM