2017-02-02 47 views
1

我想知道如何過濾出一個不包含指定sting的數組?如何使用PHP過濾掉不包含指定字符串的數組?

例子:

$array = array('January', 'February', 'March', 'April'); 
$to_search = "uary"; // not case sensitivity 
$result = somefunction($array, $to_search); 
print_r($result); 

預期輸出是:

$result = array('January', 'February'); 

我希望用最有效,最快捷的方式在陣列中搜索,因爲我可能會使用該數組包含至少100個項目。

我不知道如何使用preg_match

+0

這是很容易:)看到那些999個的答案 –

+0

可能的複製[PHP:濾波器陣列(http://stackoverflow.com/questions/4910301/php-filter-array) – yivi

+0

對不起這對我來說很辛苦,但問題是哪些答案中有最好的基準? :) –

回答

1

DEMO

你應該選擇array_filter功能。 例如

$to_search = "uary"; // not case sensitivity 
$array = array('January', 'February', 'March', 'April'); 

$result = array_filter($array, function ($item) use ($to_search) { 
if (stripos($item, $to_search) !== false) { 
    return true; 
} 
return false; 
}); 

,並獲取和顯示你的陣列,使用var_dump

var_dump($result); 

請嘗試用這個,讓我知道。

1

Demo

$array = array('January', 'February', 'March', 'April'); 
$to_search = "uary"; // not case sensitivity 
$result = somefunction($array, $to_search); 
print_r($result); 
function somefunction($array, $to_search){ 
    $a=array(); 
    foreach($array as $value){ 
     if (strpos($value, $to_search) !== false) { 
      $a[] = $value; 
     } 
    } 
    return $a; 
} 

//Output 
Array ([0] => January [1] => February) 
+0

Downvoter請評論downvote !!!! – Sadikhasan

+0

嗨,你的答案也有效,但@deep剛剛做出答案。我只是舉起了贊成票。是的有人downvoted所有的答案,在這裏我的問題... :( –

1

試試這個,

<?php 
function search_string_arr($arr, $to_search) 
{ 
    $temp = []; 
    foreach ($arr as $index => $string) { 
     if (strpos($string, $to_search) !== false) { 
      $temp[] = $string; 
     } 
    } 
    return $temp; 
} 
$array  = array('January', 'February', 'March', 'April'); 
$to_search = "uary"; // not case sensitivity 
$arr = search_string_arr($array, $to_search); 
print_r($arr); 
?> 

希望這將解決您的問題。

這裏的工作演示link

+1

你好你的回答工作太,但@deep剛纔的答案1日。我剛掛上給予好評。 –

+0

沒問題,恭喜的回答! – rahulsm

相關問題