Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 忽略Foreach循环中的重复项_Php - Fatal编程技术网

Php 忽略Foreach循环中的重复项

Php 忽略Foreach循环中的重复项,php,Php,我有下面的脚本,可以循环浏览我网站上的表单条目 但是,我想删除任何重复的条目(在本例中,条目使用相同的电子邮件地址) 因此,如果我的foreach循环找到一个重复的电子邮件地址,它就会中断循环 如何使用下面的脚本实现这一点 foreach ($scouts as $participant) { $fname = ucfirst($participant['2']); $lname = ucfirst($participant['3'])

我有下面的脚本,可以循环浏览我网站上的表单条目

但是,我想删除任何重复的条目(在本例中,条目使用相同的电子邮件地址)

因此,如果我的
foreach
循环找到一个重复的电子邮件地址,它就会中断循环

如何使用下面的脚本实现这一点

foreach ($scouts as $participant) {
            $fname    = ucfirst($participant['2']);
            $lname    = ucfirst($participant['3']);
            $email    = $participant['5'];
            $html .= "\t<li><a href=>$fname $lname $email</a></li>\n";
    }
foreach($scouts作为$participant){
$fname=ucfirst($participant['2']);
$lname=ucfirst($participant['3']);
$email=$participant['5'];
$html.=“\t
  • \n”; }
    创建另一个数组来存储我们已经输出的电子邮件地址,然后在每次迭代检查中我们都没有使用该电子邮件地址

    $emails = array(); //array to store unique emails (the ones we've already used)
    foreach ($scouts as $participant) {
        $fname    = ucfirst($participant['2']);
        $lname    = ucfirst($participant['3']);
        $email    = $participant['5'];
        if( in_array($email, $emails) ) { //If in array, skip iteration
           continue;
        }
        $html .= "\t<li><a href=>$fname $lname $email</a></li>\n";
        $emails[] = $email; //Add email to "used" emails array
    }
    
    $emails=array()//存储唯一电子邮件的阵列(我们已经使用过的)
    foreach($scouts作为$participant){
    $fname=ucfirst($participant['2']);
    $lname=ucfirst($participant['3']);
    $email=$participant['5'];
    如果(在数组中($email,$emails)){//如果在数组中,跳过迭代
    继续;
    }
    $html.=“\t
  • \n”; $emails[]=$email;//将电子邮件添加到“已使用”电子邮件数组 }
    在foreach循环之前,创建一个新的空数组,用于存储已经“已知”的电子邮件地址。
    在foreach循环测试中,如果新数组已包含电子邮件,则保存并打印,否则忽略并再次循环

    $uniqueArray = array();
    foreach ($scouts as $participant) {
       if (!in_array($participant['5'], $uniqueArray)) {
                $fname   = ucfirst($participant['2']);
                $lname    = ucfirst($participant['3']);
                $email    = $participant['5'];
                $html .= "\t<li><a href=>$fname $lname $email</a></li>\n";
                $uniqueArray[] = $email;
        }
     }
    
    $uniqueArray=array();
    foreach($scouts作为$participant){
    if(!in_数组($participant['5'],$uniqueArray)){
    $fname=ucfirst($participant['2']);
    $lname=ucfirst($participant['3']);
    $email=$participant['5'];
    $html.=“\t
  • \n”; $uniqueArray[]=$email; } }
    如果您是从数据库(我假设是MySQL)获取电子邮件地址,您可以在
    中使用
    DISTINCT
    ,选择
    数组_exists()
    ?那是什么?错误:p在邮件中更正