PHP Algorithm to Evenly Distribute Items into 3 Columns

This is the second time in my PHP career I've needed this so thought I'd commit it to a blog for easy access next time and save myself some brain MIPS. I want to evenly distribute items into three piles, making sure that no pile can have more than 1 extra item, and should a pile need 1 more than the other piles, then the item should go to the left-most first. This is better explained by way of a diagram. My pile of items is shown as letters of the alphabet.

A A
AB A,B
ABC A,B,C
ABCD AB,C,D
ABCDE AB,CD,E
ABCDEF AB,CD,EF
ABCDEFG ABC,DE,FG
ABCDEFGH ABC,DEF,GH
ABCDEFGHI ABC,DEF,GHI
ABCDEFHGIJ ABCD,EFG,HIJ
ABCDEFHGIJK ABCD,EFGH,IJK

Ok, the actual solution isn't particularly difficult, but it needed a little contemplation. Reproduced below we have the answer.

<?php
    $count
= count($rows);
   
$columns = 3;
   
$col1 = floor(($count + $columns - 1) / $columns);
   
$col2 = floor(($count + $columns - 2) / $columns);
   
$col3 = floor(($count + $columns - 3) / $columns);
?>

Here we are saying that the count for each column is held in $col1, $col2 and $col3 respectively.
Done Smile