2013-08-19 78 views
0

說我有字符串:查找字符串中的幾個字符並獲取字符串中的字符數組?

$s = "ABCDEFGEHIJ"; 

和數組:

$a = array("2", "7", "A", "E", "J", "W", "Z"); 

如何搜索$ S,看看是否在$ a存在的人物,然後用所有字符返回一個數組做?所以我會得到結果:

$result = array("A", "E", "J"); 

我試過strpos($ s,「A」);但這隻適用於單個字符串並返回位置,因此它不符合條件。如何做到這一點?

回答

2

你可以循環。儘管如此,這對我來說似乎有點笨拙。

$s = "ABCDEFGEHIJ"; 
$a = array("2", "7", "A", "E", "J", "W", "Z"); 
$matches = array(); 
foreach ($a as $i) { 
    if (strpos($i, $s)) { 
     $matches[] = $i; 
    } 
} 

或者正則表達式字符數組不是取代一切:

$s = "ABCDEFGEHIJ"; 
$a = array("2", "7", "A", "E", "J", "W", "Z"); 
$out = preg_replace('/[^' . implode('',$a) . ']/' , '', $s); 

並把它轉換成一個陣列,str_split($out)

+0

是啊,我想這樣做太。但我想知道是否有一個功能可以做到這一點。或者我可以忽略一個更優雅的解決方案。 – rotaercz

+0

添加了正則表達式版本! –

+0

我沒有想到preg_replace解決方案。這很聰明。 :) – rotaercz