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

use*_*769 2 php foreach

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

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

我正在使用它来将数据分成3个相等的列,但现在我需要按照数组的顺序执行3个相等的列(而不是像CSS浮点数那样从"从左到右").我想我需要用PHP计算数组中的总值然后除以它,但我不确定代码是什么.我一直在环顾四周,但没有找到能解决这个问题的东西.

我怎样才能在这里调整我的代码以将数组的数据放入3个相等的列中?

谢谢!

Ora*_*ill 11

您可以使用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>";
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用纯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>";
Run Code Online (Sandbox Code Playgroud)