说我有65个字符串的列表 我需要将这个单个列表拆分为多个具有相似字符串数量的“池” 金额不能超过32。
在这份65人的名单中,他们的排名从第1位到第65位。
等等。
然而,新名单需要相当排名 在示例中,它应该是这样的:
这样,等级1和等级4在他们的新列表中成为等级1和2 其余部分也一样。
我在想我需要将array_chunk与模运算结合使用,但我似乎无法绕过它。
答案 0 :(得分:0)
这并不像看起来那么困难:
// settings
$cellCount = 115;
$maxPoolSize = 32;
// create test array with numbered strings
$testArray = array_fill(1,$cellCount,'Cell ');
foreach ($testArray as $key => $value) $testArray[$key] .= $key;
// determine the number of pools needed
$arraySize = count($testArray);
$poolCount = ceil($arraySize/$maxPoolSize);
// fill the pools
$poolNo = 0;
foreach ($testArray as $cell)
{
$poolArray[$poolNo][] = $cell;
$poolNo++;
if ($poolNo == $poolCount) $poolNo = 0;
}
// show result
echo '<pre>';
print_r($poolArray);
echo '</pre>';
我确定还有其他解决方案,但这似乎可以胜任。
答案 1 :(得分:0)
我认为你通过使用array_chunk和模运算以正确的方式,这是我选择的方式。
就像是:
$countarray = count($myarray);
$modulo = 2;
while ($countarray>32)
{
$result = $countarray/$modulo;
if($result>32)
$modulo++;
}
$newpool = array_chunk($myarray, $modulo);
我不是php中的神,所以我希望它会有所帮助!抱歉我的英语很差。