如何使用PHP过滤掉不包含指定字符串的数组?

时间:2017-02-02 08:24:48

标签: php arrays

我想知道如何过滤掉不包含指定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

3 个答案:

答案 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