我想知道如何过滤掉不包含指定sting的数组?
示例:
$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 :(得分:1)
<强> DEMO 强>
您应该选择array_filter功能。 e.g。
$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 :(得分: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 )
答案 2 :(得分: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。