使用PHP将数组拆分为3个相等的列

2022-02-21 foreach php

我使用以下PHP代码回显数组中的数据.

foreach($businessnames as $b)
{
    $theurl = get_term_link($b, 'businessnames');
    echo "<li style='width: 31%;'><a href="" . $theurl . $append . "">". $b->name ."</a></li>";
}

我使用它将数据分成3个相等的列,但现在我需要按照数组的顺序排列3个相等的列(而不是像CSS浮动那样"从左到右")。我想我需要用PHP计算数组中的总值,然后将其除以,但我不确定代码会是什么。我一直在四处寻找,但没有找到特别解决这个问题的方法。

如何调整此处的代码以将数组数据放入3个相等的列?

谢谢!


解决方案

可以使用ARRAY_CHUNK将数组拆分成多个片段

$cols = array_chunk($businessnames, ceil(count($businessnames)/3)); 

foreach ($cols as $businessnames){
    echo "<ol class='col'>";
    foreach($businessnames as $b)
    {
        $theurl = get_term_link($b, 'businessnames');
        echo "<li style='width: 31%;'><a href="" . $theurl . $append . "">". $b->name ."</a></li>";
    }
    echo "</ol>";
}

或者,您也可以使用纯CSS解决方案。

echo "<ol style='column-count:3; -o-column-count:3; -moz-column-count:3; -webkit-column-count:3;'>";
foreach($businessnames as $b)
{
    $theurl = get_term_link($b, 'businessnames');
    echo "<li style='width: 31%;'><a href="" . $theurl . $append . "">". $b->name ."</a></li>";
}
echo "</ol>";

相关文章