我有整數數組。我需要使用運行良好的特定算法對該整數進行分組。問題是我陷入永久循環。PHP - 對於每個循環永遠持續
我創建了一個算法,它將數組的兩個元素與某個數字進行比較,當語句爲true時,將從數組中移除兩個元素。
對於每個循環都用while循環包圍,檢查數組是否爲空(當所有元素都被刪除時它會停止),並且每個循環用於比較具有上述特定數字的數組元素。
是否有人知道什麼是錯我的代碼
CODE:
$testArray1=array(2,1,4,7,1,2,6,8);
$group=3;
sort($testArray1);
$arrlength = count($testArray1);
$totalnumber=0;
for($x = 0; $x < $arrlength; $x++) {
$totalnumber+= $testArray1[$x];
}
$groupNumber = round($totalnumber/$group,0);
while (!empty($testArray1)) {
$arrlength = count($testArray1);
foreach($testArray1 as $key => &$val) {
$end=end($testArray1);
$number=$val+$end;
if ($number==$groupNumber){
echo $val." , "." , ".$end.": ".$number. "<br>";
unset ($testArray1[$key]);
array_pop($testArray1);
break;
}
}
}
?>
這裏是我真正需要做的:
比方說,我有數組是這樣的:
array(2,1,4,7,1,2,6,8);
我需要編寫一個算法,接收兩個參數(整數數組和組數)。該數組需要按照用戶定義的組數來劃分,以便儘可能接近每個組內所有成員的總和。
這裏是例如:
我有陣列是這樣的:2,1,4,7,2,6,8和我需要將其分成3組。
在此之後陣列被分成組,我的輸出需要看起來像這樣:
GROUP 1:8,2:10 第2組:7,2,1:10 組3:6,4 ,1:11
呃...如果你把這個&$ val這個? $ val它改變了什麼?那說試着編輯這個!empty($ testArray1)if(count($ testArray1)> 0){}? 「 – 2014-12-02 21:48:48
」運作良好。問題在於我陷入永久循環。「*您的*工作良好的定義*有點奇怪 – 2014-12-02 21:50:17
@MarcoMura我試過你的建議......現在它不會加載頁面:( – user3429355 2014-12-02 21:50:33