これで2,3時間頭を掻き回してしまったことは、愚かな問題のように思えるが解決策が見つからない。配列の項目を追加して新しい配列を再評価する
$continueLoop = true;
$colorsArray = array("red", "white", "blue");
while($continueLoop == true) {
$arrayCount = count($colorsArray);
for ($i=0; $i < $arrayCount; $i++) {
echo "evaluating ".$colorsArray[$i]."<br>";
if($colorsArray[$i] == "blue") {
array_push($colorsArray, "YELLOW");
break;
}
}
if(count($colorsArray) == 4) {
$continueLoop = false;
}
}
それは基本的に
赤
白
青
を出力します
は、ここに私のサンプルコードです私は "黄色"の色を追加しているし、それは再び全体の配列を通過する必要があります。しかし、それは新しく追加された配列項目を無視しています。
$ colorsArrayが4つの項目を持つまで(最初は3つしかない)whileループが実行され続けるため、項目を認識することが分かります。
なぜ、「黄色」をエコーしていないのですか?場合
:
私はちょうど$配列を使用してアイテムを押し、[]、foreachのを使用して、array_valuesなど、いくつかの異なる解決策を試してみたなど
はあなたに
更新をありがとう私は(カウント($ colorsArray)== 10){
場合を置きます
まだ印刷されません。イエロー
あなたは特にあなたの '$ continueLoop =偽で追加の繰り返しを防ぐため、あなたは' for'から抜け出すと、その後、 '$ continueLoop =を設定イエローインデックス – arkascha
もで破る...'コマンドすべてが完了し、黄色をエコーするために再びループしません。 – Farhan
を表示しない場合 – AbraCadaver