私は次の配列があります。これはPHPバグの可能性がありますか?
$arr_nav=array(
array("Jimmy", "B", "C", "A", "B", "D", "A", "B", "C", "A", "D", "C", "A", "B", "C", "A", "B", "A", "D", "B", "C", "A"),
array("John", "B", "", "", "A", "B", "C", "", "D", "", "", "", "", "", "", "", "", "", "", "", "", ""),
array("George", "B", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")
);
を私は3個の空のセルはそれぞれ、すべてのこれらの配列の一つに、行で、ありますかどうかを確認します。
配列の最初のセルは、学生の名前が含まれており、以下の細胞が決定されるべきものであるため、私は(各配列のセル1から始まる)この機能を書いた:
public function checkEmptySpaces($arr){
$emptyThree = false; //A variable to store the current condition of three spaces in a row or not
$emptyNames = array(); //Array of names, to return
//Start going over the two dimensional array
for($i=0; $i<count($arr); $i++){
//Start from cell 1, and not 0, as cell 1 contains the name of the student, jump by 3 each time
for($j=1; $j<count($arr[0]); $j+=3){
//Check whether the current cell, the one that comes after, and then one after both of them are all empty
if(($arr[$i][$j] == "") && ($arr[$i][$j+1] == "") && ($arr[$i][$j+2] == "")){
//If yes, set $emptyThree to true
$emptyThree = true;
}
}
//Check if $emptyThree is set to true
if($emptyThree == true){
//If yes, push the name of the array's student (as stored in it's first cell), in the $emptyNames array which we return in the end of the function
array_push($emptyNames, $arr[$i][0]);
}
//Reset the $emptyThree variable as the loops start going over the next array
$emptyThree = false;
}
//Return the new array which contains the names of the students that has 3 spaces in a row in their arrays
return $emptyNames;
}
しかし、それは動作していないようです。それは、それが常にtrue(if文)を返すように見えるので、条件自体に問題があるようです。array_push
部分に3つの空のセルがない場合行。
問題が何であるかを知っている人は誰ですか?
コードを実質的に難読化する必要がある場合は、この100倍の回答を+1します – zanderwar
なぜ2Dループを作成しますか?配列は1次元しかないようです... – Damiano
Re:この質問のタイトル:いいえこれはPHPのバグではありません。 – Simba