私はこの問題を今一週間苦労しています。これ以上のオプションはありませんが、ここでstackoverflowで質問してください。配列からのループとその包含方法
私は現在のxlsxファイルの読み込み行のためのPHPスパウトを使用していますし、アレイは、この
Array
(
[Name] => abcd1234
[Address] => abcd1234
[Number] => abcd1234
)
Array
(
[Name] => abcd1234
[Address] => abcd1234
[Number] => abcd1234
)
Array
(
[Name] => abcd1234
[Address] => abcd1234
[Number] => abcd1234
)
のように見える、foreachループは、私は私の問題を持っているこの
// Number of sheet in excel file
foreach ($reader->getSheetIterator() as $sheet) {
// Number of Rows in Excel sheet
foreach ($sheet->getRowIterator() as $row) {
// It reads data after header. In the my excel sheet,
// header is in the first row.
if ($count1 > 1) {
// Data of excel sheet
$data['Name'] = $row[0];
$data['Address'] = $row[1];
$data['Number'] = $row[2];
//Here, You can insert data into database.
//print_r($data);
//$sql = mysqli_query($connection, "INSERT INTO address(Name, Address, Number) VALUES ('$row[0]', '$row[1]', '$row[2]')");
foreach ($data as $key => $value) {
$value = trim($value);
if (empty($value)){
echo $output = "Row ".$count1." Column ".$key." is empty <br/>";
}
}
}
$count1++;
}
}
のように見えますすべての配列をループする必要がありますし、私はそれを無視するか、行の重複値を数える必要がある管理する各列に欠けている行を見つける必要があります。私はarray_uniqueをやってみたが、それは私が使っていた配列ではうまくいかなかった。
また、別の配列に配列を挿入しようとしましたが、挿入に問題がありました。私はおそらく私の配列を宣言することに問題があるが、私はまだいくつかの問題を抱えている。どのように私は複数の異なる配列の重複を無視するか、foreachループ内の別の配列をすべて1つの配列にマージする方法はありますか?申し訳ありませんが、私はPHPで配列にちょっと新しいですし、誰かがこれを読んでいるならあなたに感謝します。
編集:私が目指していた出力は、xlsxファイルから配列/行内の欠損値の数を数えることです。これは、サンプルコードのforeachループのようなものです。例:
Row 213 Column Name is empty
Row 214 Column Name is empty
Row 214 Column Address is empty
これは、xlsxファイルの行に不足している値をエコーしたときのようです。
これで、xlsxファイルに重複する行があるかどうかを確認する必要があります。私の最初の最初のアイデアは、重複する値を持つにエコー行のいずれかが
Row 213 Column Name is has duplicates
Row 214 Column Name is has duplicates
Row 214 Column Address is empty
をすなわちだった。しかし、すべてがarray_uniqueを試してみて、使用するために私を導いただけでなく、道が配列のxlsxファイルが提示されているので、問題を抱えていた複雑ました。
/あなたの出力結果は何探している?多分例を挙げることができますか?データをSQLクエリに直接ペーストするのではなく、プリペアドステートメントを使用することを検討する必要があります。私が間違っていない場合、 'getRowIterator'は開始行を指定できるので、' $ count1'を使う必要はありません。 –
こんにちは、ありがとうございます。私はその例を編集した。 – Junnel