在 php 数组中搜索部分字符串匹配

2022-08-30 12:53:14

我有一个数组,我想搜索字符串。因此,在这种情况下,它应该返回'green'$arr[2]

$arr = array(0 => 'blue', 1 => 'red', 2 => 'green string', 3 => 'red');

是否有任何预定义的函数(如in_array())来完成工作,而不是循环遍历它并比较每个值?


答案 1

对于部分匹配,您可以迭代数组并使用字符串搜索函数,如 strpos()

function array_search_partial($arr, $keyword) {
    foreach($arr as $index => $string) {
        if (strpos($string, $keyword) !== FALSE)
            return $index;
    }
}

对于完全匹配,请使用 in_array()

in_array('green', $arr)

答案 2

您可以使用preg_grep函数。PHP > = 4.0.5 中支持它。

$array = array(0 => 'blue', 1 => 'red', 2 => 'green string', 3 => 'red');
$m_array = preg_grep('/^green\s.*/', $array);

$m_array包含数组的匹配元素。