[英]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.