<?php
function tryDistributeLinksEvenly($howManyMessages, $links){
echo "testing $howManyMessages\n";
$messages = array_chunk($links, $howManyMessages, true);
foreach($messages as $message){
$count = array_reduce(array_keys($message), function($a, $b){ return mb_strlen($a) + mb_strlen($b) + 2; });
var_dump($message);
echo $count . "\n";
}
echo "-----\n";
}
function distributeLinksEvenly($links){
$howManyMessages = 0;
do{
$howManyMessages++;
$chunks = tryDistributeLinksEvenly($howManyMessages, $links);
if($howManyMessages > 10) exit();
}while($chunks === null);
return $chunks;
}
$v =
[
'aaaa',
'bbbb',
'ccccccc',
'dddddddddd',
'eeeeeeee',
'ffffffffffff',
'gggg',
'hhhhhh',
'iiiiiiiiiii',
'lllllll',
'mmmmmmmmmmm',
'nnnnnnn',
'ooo',
];
$v = array_combine($v, $v);
distributeLinksEvenly($v);
preferences:
56.6 ms | 402 KiB | 5 Q