2013-02-22 79 views
3

你好我想創建一個函數來檢查一個etry是否包含一些單詞。函數來檢查數組strpos並返回一個數組

我的登錄腳本我想創建一個函數,檢查$ _POST是否有一些關鍵字。

therfor我曾經想過要創建一個包含我正在尋找這樣的話數組:

$valid_value = value_check($a, $b); 
if ($valid_value['a'] === true) { 
//do something 
} 
if ($valid_value['b'] === true) { 
//do something 
} 

非常感謝:

function value_check($a, $b){ 
    $haystack = array ($a, $b) 
    $words = array ("abc", "def"); 
    if(strpos($haystack, $words) === true) { 
     return ($a or $b, or both where strpos === true); 
    } 
    return false; 
} 

,我想通過調用該函數。

好的,爲了澄清我的問題,我想縮短我的代碼。而不是使用:

...else if ($a === "abc" || $a === "Abc" ) { 
     $errors['a'][] = "text"; 
}else if ($b === "def" || $a === "Def" ) { 
     $errors['b'][] = "text"; 
    } 

,我想我可以同時使用,檢查容易,如果有數組中的一個特定字符串的函數做到這一點更舒服一點。希望現在會清楚。謝謝。

+0

在想同樣的事情... – Manatax 2013-02-22 18:31:55

+0

檢查'strpos'手冊,它沒有考慮數組作爲參數。 – jeroen 2013-02-22 18:32:02

+0

@MarkoD顯然他不知道該怎麼做,只需要一些幫助 – Peter 2013-02-22 18:32:33

回答

2

閱讀in_array用於陣列搜索。而這explode建議從字符串像Ascherer創建一個數組。

function value_check ($haystack) { 
    foreach ($words as $element) { 
     if (in_array($element,$haystack) { 
      $result[] = $element; 
     } 
    } 
    return $result; 
} 

通話

$somestuff = array($a,$b); 
$valid_value = value_check ($somestuff); 
foreach ($valid_value as $value) { 
    // do something 
} 
+1

that'explode('',$ string)'可能會有幫助 – Ascherer 2013-02-22 18:34:00

+0

雖然是一個很好的一般性建議,但這並不能解決OP的* exact *需求。 – 2013-02-22 18:34:16

+0

@JasonMcCreary嗯......沒有具體的問題......更像是「我不知道該怎麼做」......因此,指導他/她如何去做的手冊的鏈接是最準確的答案 – Manatax 2013-02-22 18:37:46