2013-08-20 60 views
1

我有我需要檢查對一個代碼的文件名的一個陣列,例如檢查陣列部分匹配(PHP)

array("120_120_435645.jpg","150_150_312312.jpg","250_250_1232327.jpg"); 

的字符串是「312312」,因此它會匹配「150_150_312312.jpg」因爲它包含該字符串。 如果搜索內沒有任何匹配,則將該代碼標記爲缺失。

我試圖in_array但如果它是完全匹配,這似乎任何返回true,不知道是否array_filter會做枯萎......

感謝您的任何意見......也許我一直盯着它太長,咖啡可以幫助:)

+1

http://stackoverflow.com/a/5592142/138383 –

+0

我寧願使用stripos函數,而不是'preg_'功能 –

+0

的一點是,你不」通過使用'preg_grep'需要一個循環。 –

回答

10
$filenames = array("120_120_435645.jpg","150_150_312312.jpg","250_250_1232327.jpg"); 
$matches = preg_grep("/312312/", $filenames); 
print_r($matches); 

輸出:

Array 
(
    [1] => 150_150_312312.jpg 
) 

或者,如果你不想使用正則表達式,你可以簡單地使用strpos爲建議答案:

foreach ($filenames as $filename) { 
    if (strpos($filename,'312312') !== false) { 
    echo 'True'; 
    } 
} 

Demo!