[英]echo “no results found” if no matches found
我使用以下代碼返回包含“http://”的數據 - 代碼工作正常,我得到了我需要的數據。
工作代碼
foreach($all_urls as $index => $value) {
if (preg_match('/http:/', $value)) {
echo "<pre>{$value}</pre>";
}
}
但是,如果找不到匹配項,我希望它也返回一條消息。 我試過這個,但似乎沒有用。
不工作的代碼
foreach($all_urls as $index => $value) {
if (preg_match('/http:/', $value) === false) {
echo 'no matches found';
} elseif (preg_match('/http:/', $value)) {
echo "<pre>{$value}</pre>";
}
}
此外,試過這個,但它並不好,因為我得到重復“每次迭代找不到匹配”。
foreach($all_urls as $index => $value) {
if (preg_match('/http:/', $value)) {
echo "<pre>{$value}</pre>";
} else {
echo "no matches found";
}
}
我需要它檢查一次,如果在數組中找不到“http://”,則只返回一次“找不到匹配項”
在這種情況下,使用boolean
變量應該是一個很好的方法。
只要我們匹配,我們就會將布爾值設置為true
。 否則,它將具有其初始值 - false
。
在循環之后,我們應該檢查變量的值,如果它仍然是false
我們應該打印“找不到匹配”消息。
$matches = false;
foreach($all_urls as $index => $value) {
if (preg_match('/http:/', $value)) {
echo "<pre>{$value}</pre>";
$matches = true;
}
}
if(!$matches){
echo "no matches found";
}
只需添加一個變量,確保只輸出一次no matches
,如下所示:
$error = FALSE;
foreach($all_urls as $index => $value) {
if (preg_match('/http:/', $value)) {
echo "<pre>{$value}</pre>";
} else {
if(!$error) {
echo "no matches found";
$error = TRUE;
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.