2010-09-02 126 views
3
$array = array('a', 'b', 'c', 'd', /*... letters from 3 alphabets*/); 

$letter = 'some symbol, posted by user'; // real length = 1 

特定符號如何獲得認識,是符號$letter之一,$array上市?搜索內部陣列

一樣,如果$letter = 'G'並且在$array沒有G,以及隨後return false


是的,我試過in_array(),但有太多的符號,還有沒有其他的(短)的解決方案?

+1

太...許多符號? – BoltClock 2010-09-02 18:17:31

+0

你可以嘗試將每個字母分割成它自己的$數組,然後只是一起做一堆......但不應限制數組中的項的數量。字母和符號像'!,?'一樣 – 2010-09-02 18:19:20

+0

等 – James 2010-09-02 18:21:05

回答

4

in_array()http://ca.php.net/in_array

if(in_array($letter,$array)) { 
    // your code 
} 

另一種方法是做這個

// THIS WAY 
$array = array('a','b','c'); // and continue this way. 
$array = array_flip($array); 

// OR THIS 
$array = array('a'=>0,'b'=>0,'c'=>0); 

// This will stay the same 
if($array[$letter] != null) { 
    // your code 
} 
+1

您可以使用'array_flip()'將字母數組轉換爲鍵。 – BoltClock 2010-09-02 18:26:48

+0

感謝BoltClock,我從來沒有遇到過這樣的需求,但它可能派上用場。我已經更新了我的答案,以包括您的方法。 – 2010-09-02 18:30:10

+0

它應該是'$ array = array_flip($ array);'因爲那個函數不會修改參數。 (Nitpicking,我知道。) – BoltClock 2010-09-02 18:35:36

0
$IsInArray = in_array($letter, $array); //RETURNS TRUE OR FALSE 
0

檢查in_array()功能......讓你在找一根針(單個字母)乾草堆(陣列)

0

您可以使用字符串代替數組:

$letters = 'abcdefghi...'; 
$letter = 'a'; 

if (false !== strpos($letters, $letter)) { 
    // valid letter 
}