[ad_1]
だから私は自分のcsvとユーザー入力を比較するのに忙しい
しかし、このエラーが発生し、理由がわかりません
Warning: foreach() argument must be of type array|object, bool given
引数が array|bool である必要があると言っているのはわかっていますが、それが is_array() 関数を使用して配列であるかどうかを $row_data でチェックし、はい、配列であると言っていました。
私の引数が配列の場合、なぜ機能しないのでしょうか??
// //de csv check stopte de hele code?? // // Set the path to your CSV file $csv_file = "checkcsvfileforuserinput.csv"; // Open the file for reading $file_handle = fopen($csv_file, "r"); // Read the contents of the file while (!feof($file_handle)) { // Get the current row of data from the CSV $row_data = fgetcsv($file_handle); // Loop through each item in the row foreach ($row_data as $item) { // Check if the item matches either of the user inputs if ($item == $Zipcode || $item == $Housenumber) { // User input found in the CSV $_SESSION['input_found'] = "user input found"; }elseif($item == $Zipcode || $item == $Housenumber || $item == $Toevoeging){ $_SESSION['input_found'] = "user input found"; }else{ $_SESSION['input_found'] = "user input not found"; } } }
私が試したこと:
まず、is_array を実行して $row_data が本当に配列であるかどうかを確認したところ、はいと言われました。
インターネットで調べてみましたが、csvファイルを
1000, ","
次の
$row_data = fgetcsv($file_handle);
だから私はそれを試しましたが、; idk 1000 の目的は何ですか。 私が持っているセパレーターです。 ただし、これは何も違うことを示していません
解決策 1
ドキュメントを見ると: PHP fgetcsv() 関数[^] 戻り値を示します。
引用:戻り値: 成功した場合は CSV フィールドの配列、無効なファイルが指定された場合は NULL、その他のエラーと EOF の場合は FALSE
CSV ファイルにエラーがある場合、または見つからない場合は、 $row_data
することができます bool
私はデバッガーから始めて、あなたが関数に何を渡しているのか、そしてそれが何を返すのかを正確に見つけます。
解決策 2
テストを AND (&&
) to OR (
// Read the contents of the file while (($row_data = fgetcsv($file_handle)) !== FALSE) { if ($row_data[0] == $Zipcode && $row_data[1] == $Housenumber && $row_data[2] == $Toevoeging)) { // NB check which actual fields contain the relevant items. // User input found in the CSV $_SESSION['input_found'] = "user input found"; } }
以前の回答に戻り、配列アクセスが説明されている PHP マニュアルへのリンクをたどってください。
[ad_2]
コメント