如何在数组中显示未验证的电子邮件

时间:2018-07-24 14:49:04

标签: arrays

我有以下两个数组。

第一个数组

Array ( [0] => rogers@gmail.com [1] => peter@gmail.com [2] => john@gmail.com )

第二个数组

Array ( [0] => Verified [1] => Unverified [2] => Unverified )

它们在数据库中存储为

{"user_email":["rogers@gmail.com","peter@gmail.com","john@gmail.com"],"status":["Verified","Unverified","Unverified"}

我想显示所有“未验证” 的电子邮件。怎么做。预先感谢。

2 个答案:

答案 0 :(得分:0)

首先,我建议您以其他格式存储数据。现在存储它的方式,您必须假定第一个数组中的位置0完全对应于第二个数组中的位置0。现在,它还强制数组大小相等,以围绕它们构建任何类型的算法,以将“已验证/未验证”的值与不同的电子邮件相关联。我建议如下:

{"email_and_status":[ 
    ["rogers@gmail.com", "Verified"], 
    ["peter@gmail.com", "Unverified"], 
    ["john@gmail.com", "Unverified"]
] }

这将导致单个数组:

Array ( [0] => Array ( [0] => "rogers@gmail.com" [1] => "Verified" ) [1] => Array ( ...

您可以遍历此数组,检查第二个条目是否为“未验证”,然后将第一个条目保存在某个数组中以供显示。

关于您的问题的答案,我将用一些通用的伪代码编写该算法,然后对其进行解释。

return_array = [];

for(i = 0; i < length(first_array); i++) {
    if(second_array[i] == "Unverified") {
        return_array.append(first_array[i]);
    }
}

在此必须做的第一个假设是,第一个数组的长度与第二个数组的长度相同。代码遍历每个数组,如果第二个数组中的第i个条目为“未验证”,则将第一个数组中的第i个条目添加到return_array中。循环结束后,如果我正确解释了您的数据结构,return_array应该保留值“ peter@gmail.com”和“ john@gmail.com”。另外,如果您实际上不希望将这些值保存在新数组中,则可以简单地将return_array.append(first_array[i]);替换为print(first_array[i]);,这将在您遍历数组时显示电子邮件。

注意:用特定于您的语言的内容替换.appendprintlength等。

答案 1 :(得分:0)

找到我的答案

for ( $i = 1; $i < count( $member_details->user_email ); $i++ ) {
    $user_status = $member_details->status[ $i ];

    if ( $user_status === 'Unverified' ) {

        echo $member_details->user_email[ $i ];

    }

}