在 php 数组中搜索部分字符串匹配
我有一个数组,我想搜索字符串。因此,在这种情况下,它应该返回'green'
$arr[2]
$arr = array(0 => 'blue', 1 => 'red', 2 => 'green string', 3 => 'red');
是否有任何预定义的函数(如in_array())来完成工作,而不是循环遍历它并比较每个值?
我有一个数组,我想搜索字符串。因此,在这种情况下,它应该返回'green'
$arr[2]
$arr = array(0 => 'blue', 1 => 'red', 2 => 'green string', 3 => 'red');
是否有任何预定义的函数(如in_array())来完成工作,而不是循环遍历它并比较每个值?
对于部分匹配,您可以迭代数组并使用字符串搜索函数,如 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)
您可以使用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
包含数组的匹配元素。