我有以下两个数组。
第一个数组
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"}
我想显示所有“未验证” 的电子邮件。怎么做。预先感谢。
答案 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]);
,这将在您遍历数组时显示电子邮件。
注意:用特定于您的语言的内容替换.append
,print
,length
等。
答案 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 ];
}
}