You can use array_chunk to do that.
Basically give the database fetch result to the function.
You can check this link:
http://php.net/manual/tr/function.array-chunk.php
EDIT
for($x=0; $x<30; $x++)
    $mainArray[]="Data X";
$split=array_chunk($mainArray,3);
echo "<pre>";
print_r($split);
echo "</pre>";
RESULT
Array
(
[0] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[1] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[2] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[3] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[4] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[5] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[6] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[7] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[8] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
[9] => Array
    (
        [0] => Data X
        [1] => Data X
        [2] => Data X
    )
)