【问题标题】:Create CSV files and add data depending on condition php根据条件php创建CSV文件并添加数据
【发布时间】:2020-03-23 11:57:16
【问题描述】:

我有一个结果数组,我想为它创建 csv 文件。但如果结果有效,我想将电子邮件添加到有效的 csv 文件中,如果它无效,则添加到无效的 csv 文件中。但我无法做到这一点。它将所有电子邮件添加到清理 csv 文件,并且无效的 csv 为空。任何建议

结果如下:

Array
(
    [0] => Array
        (
            [email] => tamas.szabo@millionverifier.com
            [result] => valid
        )

    [1] => Array
        (
            [email] => support@millionverifier.com
            [result] => valid
        )

)

这是我的条件

// creating dirty and clean file
$clean_emails = fopen(UPLOAD_DIRECTORY . '/clean/' . $file_name_new . '.' . $extension, 'w');
$dirty_emails = fopen(UPLOAD_DIRECTORY . '/dirty/' . $file_name_new . '.' . $extension, 'w');

// adding headers to them
fputcsv($clean_emails, $headers);
fputcsv($dirty_emails, $headers);            

if ($results[$i]['result'] === 'valid') {

    // adding clean emails to csv
    foreach ($results as $row) {
    fputcsv($clean_emails, $row);
    }
    fclose($clean_emails);

} elseif ($results[$i]['result'] === 'invalid') {

    // adding dirty emails to csv
    foreach ($results as $row) {
    fputcsv($dirty_emails, $row);
    }
    fclose($dirty_emails);

} else {

    // if there are not any dirty or clean emails add them unknown to csv
    $unknown_emails = fopen(UPLOAD_DIRECTORY . '/unknown/' . $file_name_new . '.' . $extension, 'w');
    fputcsv($unknown_emails, $row);
    fclose($unknown_emails);

}

【问题讨论】:

  • 这个条件真的是循环的吗?
  • $results[$i]$i 应该是什么? // 你的尝试在我看来完全是假的,为什么循环 inside 是那些条件?应该是相反的方式 - one 循环遍历您的数据,并在其中将当前记录写入文件 A 或文件 B ...
  • $i 来自生成结果的顶部循环for ($i = 0; $i < $rows; $i++)

标签: php loops csv fputcsv


【解决方案1】:

您可能想要逐行分隔吗?

// creating dirty and clean file
$clean_emails = fopen(UPLOAD_DIRECTORY . '/clean/' . $file_name_new . '.' . $extension, 'w');
$dirty_emails = fopen(UPLOAD_DIRECTORY . '/dirty/' . $file_name_new . '.' . $extension, 'w');
$unknown_emails = null; // No file yet

// adding headers to them
fputcsv($clean_emails, $headers);
fputcsv($dirty_emails, $headers);            

foreach ($results as $row) { // Scan each row
    if ($row['result'] === 'valid') {
        fputcsv($clean_emails, $row);
    } elseif ($row['result'] === 'invalid') {
        fputcsv($dirty_emails, $row);
    } else {  // found something else
        if (!isset($unknown_emails)) { // Open file if it was not
            $unknown_emails = fopen(UPLOAD_DIRECTORY . '/unknown/' . $file_name_new . '.' . $extension, 'w');
            fputcsv($unknown_emails, $headers); // Add headers ?
        }
        fputcsv($unknown_emails, $row);
    }
} // end loop
fclose($clean_emails);
fclose($dirty_emails);
if (isset($unknown_emails)) {
    fclose($unknown_emails); // Close 'unknown' if it was opened
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-07
    • 2021-11-30
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多