我正在嘗試制定一個php函數來搜索引用頁面的術語,然後根據這些術語的存在性來執行函數。帶多維數組的stripos
創建基本代碼不是一個問題,但有了相當多的單詞和可選操作,對於每組單詞/函數,腳本使用單獨的行變得相當長。基本的代碼概念如下。脫衣舞的功能是相反的優先順序,所以如果出現兩個或更多的術語,那麼最重要的是最後一個,並將超過以前的
(我想有可能有一種方法來退出腳本後第一個條件是滿足的,但我的退出實驗失敗了,所以我只用了反向排序)。
group1 = array("word1","word2","word3","word4","word5");
group2 = array("word6","word7","word8");
group3 ... etc
foreach($group1 as $groupa) { if(stripos($string, $groupa) !== false) { do something A; } }
foreach($group2 as $groupb) { if(stripos($string, $groupb) !== false) { do something B; } }
foreach ... etc
有沒有辦法使用二維數組或兩個數組,一個是文字,一個是動作?即:
words = array("word1","word2","word3","word4","word5","word6","word7","word8")
actions = array("something A","something A","something A","something A","something A","something B","something B","something B")
foreach($words as $word) { if(stripos($string, $word) !== false) { do actions; } }
......已更新......
菲利普斯建議的啓發,我們結束了一個多維數組,然後通過其「行」踩。現在正在從MySQL獲取數組,而不是將其寫入代碼中。
$terms = array(
array("word" => "word1",
"cat" => "dstn",
"value" => "XXXX"
),
..etc
..etc
);
foreach ($terms as $i => $row)
{ if(stripos($refstring3, $row['word']) !== false) { $$row['cat'] = $row['value']; } }
......已更新......
它已演變爲一種簡單的MySQL查詢,隨後while語句,而不是一個foreach。像一個魅力,感謝Stackoverflow的反饋和各種其他帖子。
感謝所有。
這個地方非常適合學習和理解,文章直接跳到事物的肉,並跳過搜索許多相關但不適用的教程。
退出不退出整個循環和腳本,也許繼續,休息,返回是你在找什麼? – ajreal
我嘗試添加continue;打破;返回;但它仍然遍歷每個foreach() – Tom