Php 为什么我的产出价值翻了一番?如何在末尾存储每个文件的精确值而不加倍? foreach($fileContent作为$stData){ 而(!feof($f)){ $stData=explode(“,”,trim(fgets($f,1024)); if((filter_var($stData[1],filter_VALIDATE_INT,数组(“选项”=>array(“最小范围”=>0,“最大范围”=>100)))&&preg_match('/^\d{8}$/',$stData[0])){ echo$stData[0]。“:”$stData[1]。“”; $goodStudents[]=$stData; }elseif((filter_var($stData[1],filter_VALIDATE_INT,array(“选项”=>array(“最小范围”=>0,“最大范围”=>100)))==false)和&preg_匹配('/^\d{8}$/',$stData[0])){ echo$stData[0]。“:”$stData[1]。“:标记不正确:未包括在内”; }否则{ echo$stData[0]。“:”$stData[1]。“:不正确的ID:未包括在内”; } }//当 };//foreach student&mark 打印(计数($goodStudents));
输出: 12345678:56 3456782:67:不正确的ID:不包括在内 12324654:98 23476901:53 12563792:49 74537299:7 99834511:50 77625489:56 55274559:63 22009643:711:不正确的标记:不包括在内 8---存储的数组 12345678:56 34567822:67 12324654:98 234769O1:45:不正确的ID:不包括在内 12563792:49 74537299:7I:不正确的标记:不包括在内 99834511:50 77625489:56 55274559:63 22009643:71 72578129:51Php 为什么我的产出价值翻了一番?如何在末尾存储每个文件的精确值而不加倍? foreach($fileContent作为$stData){ 而(!feof($f)){ $stData=explode(“,”,trim(fgets($f,1024)); if((filter_var($stData[1],filter_VALIDATE_INT,数组(“选项”=>array(“最小范围”=>0,“最大范围”=>100)))&&preg_match('/^\d{8}$/',$stData[0])){ echo$stData[0]。“:”$stData[1]。“”; $goodStudents[]=$stData; }elseif((filter_var($stData[1],filter_VALIDATE_INT,array(“选项”=>array(“最小范围”=>0,“最大范围”=>100)))==false)和&preg_匹配('/^\d{8}$/',$stData[0])){ echo$stData[0]。“:”$stData[1]。“:标记不正确:未包括在内”; }否则{ echo$stData[0]。“:”$stData[1]。“:不正确的ID:未包括在内”; } }//当 };//foreach student&mark 打印(计数($goodStudents));,php,loops,if-statement,Php,Loops,If Statement,输出: 12345678:56 3456782:67:不正确的ID:不包括在内 12324654:98 23476901:53 12563792:49 74537299:7 99834511:50 77625489:56 55274559:63 22009643:711:不正确的标记:不包括在内 8---存储的数组 12345678:56 34567822:67 12324654:98 234769O1:45:不正确的ID:不包括在内 12563792:49 74537299:7I:不正确的标记
17----存储的数组加倍---如果没有源数据,很难从此处进行调试。“值加倍”是什么意思?
while
循环将仅在每个循环的第一次迭代中运行。其余时间它将已经在EOF,因此没有任何内容可读取。对于foreach
迭代变量和从文件中读取的行,您正在使用相同的变量$stData
。这是故意的吗?
foreach ($fileContent as $stData){
while(!feof($f)) {
$stData = explode(',', trim(fgets($f, 1024)));
if ((filter_var($stData[1], FILTER_VALIDATE_INT, array("options" => array("min_range"=>0, "max_range"=>100))))&& preg_match('/^\d{8}$/', $stData[0])){
echo $stData[0]. " : " . $stData[1]. "</br>";
$goodStudents[] = $stData;
}elseif ((filter_var($stData[1], FILTER_VALIDATE_INT, array("options" => array("min_range"=>0, "max_range"=>100)))==false)&& preg_match('/^\d{8}$/', $stData[0])) {
echo $stData[0]. " : " . $stData[1]. " : Incorrect mark : not included </br>";
} else {
echo $stData[0]. " : " .$stData[1]. " : Incorrect ID : not included </br>";
}
}//while
};//foreach student & mark
print_r (count($goodStudents));