<?php
$array = array(
array('value' => 1),
array('value' => 2),
array('value' => 2), //Move this
array('value' => 2), //Move the also second duplicate
array('value' => 'A'),
array('value' => 'B'),
array('value' => 'C'),
array('value' => 6),
array('value' => 7),
array('value' => 7), //Move this
array('value' => 8),
array('value' => 9),
array('value' => 10),
array('value' => 11)
);
usort($array, function($a, $b){ return strcmp($a['value'], $b['value']);});
$chunks = array_chunk($array, ceil(count($array)/5));
$array = array();
for($x = 0, $numX = count($chunks[0]); $x < $numX; $x++){
for($y = 0, $numY = count($chunks); $y < $numY; $y++){
$array[] = $chunks[$y][$x];
}
}
print_r($array);
preferences:
42.2 ms | 402 KiB | 5 Q