嗨,我有一个问题。我有一个动态填充的数组。在数组中,有2种主要类型。具有等于27个字符的文件名和其余的物品或多或少。我能够将两种类型分开。第二个列表被添加到称为$ usedArray的新数组中。然后将这些项目迭代,并将文件名从字符0,6串联以比较页面上的Enduser的输入。如果在该数组中找到该项目,它将发射一个函数,向他们发送文本和完整文件名称的电子邮件。我的问题是,如果直到X迭代才能找到该项目,它将发射未找到的功能X次量,如果找不到它,则它也会做同样的事情。如果我有99个不匹配的项目,则99次。为了停止射击,我将未发现的只是在屏幕上找不到打印。我想到在循环外打电话给Not -Round函数,但如果找到一个物品,则不希望它发射这是我到目前为止的代码
do{
if (substr($val,0,6) == $studentID)
{
$codeFound = substr($val,22,19);
print_r($studentID . ' is found <br /> Their code is ' . $codeFound);
//sendText($phoneNum,$codeFound,$messageMonth);
//sendEmail($emailInfo,$messageMonth,$codeFound);
break 1;
}
else
{
print_r($studentID . " was not found <br />");
}
} while(list(, $val) = each($usedArray));
这是我的输出
166003 was not found
166003 was not found
166003 was not found
166003 is found
Their code is xxxxxxxxxx
我认为您应该添加一个标志以跟踪是否找到了某些东西:
$item_found = false;
do{
if (substr($val,0,6) == $studentID)
{
$codeFound = substr($val,22,19);
print_r($studentID . ' is found <br /> Their code is ' . $codeFound);
//sendText($phoneNum,$codeFound,$messageMonth);
//sendEmail($emailInfo,$messageMonth,$codeFound);
// item found!
$item_found = true;
break 1;
}
} while(list(, $val) = each($usedArray));
// now check - if `$item_found` is false
// then you can send your NotFoundEmail
if (!$item_found) {
sendNotFoundEmail();
}