簡體   English   中英

如何使用for循環php將多個結果保存在數組中

[英]How to save multiple results in the array with for loop php

我正在處理一個 CSV 文件。 當用戶上傳文件時。 我解析 CSV,然后從我需要的數組中選擇數據。 之后,我正在運行一個for loop來驗證該數據並將結果保存在數組中。 但問題是當我打印結果數組時,只有 1 封電子郵件的結果,而有 4 封電子郵件。 有什么建議?

$results = [];
$valid_emails = 0;
$invalid_emails = 0;

for ($i = 0; $i < $csv_array['row_count']; $i++) {
  $email = $csv_array['data'][$i][$email_column];

  $result = validate_email($email);
  $results['Email'] = $email;

  if ($result) {            
    $results['Result'] = 'valid';
    $valid_emails++;
  } else {
    $results['Result'] = 'invalid';
    $invalid_emails++;
  }

}

echo '<pre>';
print_r($results);
echo '</pre><br>';

echo $valid_emails . '<br>';
echo $invalid_emails . '<br>';

使用$results[]添加一個或多個元素:

$results        = [];
$valid_emails   = 0;
$invalid_emails = 0;

for ($i = 0; $i < $csv_array['row_count']; $i++) {
    $email = $csv_array['data'][$i][$email_column];

    $result       = validate_email($email);
    $res['Email'] = $email;

    if ($result) {
        $res['Result'] = 'valid';
        $valid_emails++;
    } else {
        $res['Result'] = 'invalid';
        $invalid_emails++;
    }

    $results[] = $res;
}

echo '<pre>';
print_r($results);
echo '</pre><br>';

echo $valid_emails . '<br>';
echo $invalid_emails . '<br>';

$results僅包含最后的電子郵件驗證。 您應該存儲多個結果,而不僅僅是最后一個 ;-)

就像是 :

  $results[$i]['Email'] = $email;

  if ($result) {            
    $results[$i]['Result'] = 'valid';
    $valid_emails++;
  } else {
    $results[$i]['Result'] = 'invalid';
    $invalid_emails++;
  }

  if ($result) {            
    $results[$i] = 'valid';
    $valid_emails++;
  } else {
    $results[$i] = 'invalid';
    $invalid_emails++;
  }

您每次都在循環中覆蓋結果,試試這個

$results = [];
$valid_emails = 0;
$invalid_emails = 0;

for ($i = 0; $i < $csv_array['row_count']; $i++) {
  $email = $csv_array['data'][$i][$email_column];
$rowResult=[];
  $result = validate_email($email);
$rowResult['Email'] = $email;


  if ($result) {            
    $rowResult['Result'] = 'valid';
    $valid_emails++;
  } else {
    $rowResult['Result'] = 'invalid';
    $invalid_emails++;
  }
$results[]=$rowResult;

}

echo '<pre>';
print_r($results);
echo '</pre><br>';

echo $valid_emails . '<br>';
echo $invalid_emails . '<br>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM