<?php
/**
* @link http://stackoverflow.com/q/9445369/367456
*/
$array = range ( 'A' , 'M' ) ; $columns = 4 ;
print_matrix( $array , $columns ) ;
$floor = floor ( $length / $columns ) ; $modulo = $length % $columns ;
$max = $length - 1 ;
$virtual = 0 ;
foreach ( $keys as $index => $key )
{
$vkey = $keys [ $virtual ] ;
$build [ $vkey ] = $array [ $vkey ] ;
$virtual += $floor + ( $index % $columns < $modulo ) ;
( $virtual > $max ) && $virtual %= $max ;
}
print_matrix( $build , $columns ) ;
function print_matrix( $matrix , $columns )
{
echo "One row - " . implode ( ' ' , $matrix ) . "\n " ;
{
foreach ( $row as $key => $col )
printf ( '%s[%2d] ' , $col , $key ) ; echo "\n " ;
}
echo "\n " ;
}
PD9waHAKLyoqCiAqIEBsaW5rIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xLzk0NDUzNjkvMzY3NDU2CiAqLwoKJGFycmF5ID0gcmFuZ2UoJ0EnLCAnTScpOwokY29sdW1ucyA9IDQ7CiRsZW5ndGggPSBjb3VudCgkYXJyYXkpOwoKcHJpbnRfbWF0cml4KCRhcnJheSwgJGNvbHVtbnMpOwoKJGZsb29yID0gZmxvb3IoJGxlbmd0aC8kY29sdW1ucyk7CiRtb2R1bG8gPSAkbGVuZ3RoICUgJGNvbHVtbnM7CiRtYXggPSAkbGVuZ3RoLTE7CiR2aXJ0dWFsID0gMDsKJGtleXMgPSBhcnJheV9rZXlzKCRhcnJheSk7CiRidWlsZCA9IGFycmF5KCk7CmZvcmVhY2goJGtleXMgYXMgJGluZGV4ID0+ICRrZXkpCnsKICAgICR2a2V5ID0gJGtleXNbJHZpcnR1YWxdOwogICAgJGJ1aWxkWyR2a2V5XSA9ICRhcnJheVskdmtleV07CiAgICAkdmlydHVhbCArPSAkZmxvb3IgKyAoJGluZGV4ICUgJGNvbHVtbnMgPCAkbW9kdWxvKTsKICAgICgkdmlydHVhbD4kbWF4KSAmJiAkdmlydHVhbCAlPSAkbWF4Owp9CgpwcmludF9tYXRyaXgoJGJ1aWxkLCAkY29sdW1ucyk7CgpmdW5jdGlvbiBwcmludF9tYXRyaXgoJG1hdHJpeCwgJGNvbHVtbnMpCnsKICAgIGVjaG8gIk9uZSByb3cgLSAiIC4gaW1wbG9kZSgnICcsICRtYXRyaXgpIC4gIlxuIjsKCiAgICBmb3JlYWNoKGFycmF5X2NodW5rKCRtYXRyaXgsICRjb2x1bW5zLCAxKSBhcyAkcm93KQogICAgewogICAgICAgIGZvcmVhY2goJHJvdyBhcyAka2V5ID0+ICRjb2wpCiAgICAgICAgICAgIHByaW50ZignJXNbJTJkXSAnLCAkY29sLCAka2V5KTsKICAgICAgICBlY2hvICJcbiI7CiAgICB9CiAgICBlY2hvICJcbiI7Cn0=