我想搜索' 01。'以数组的编号开头。
预期产出:
1 => string '01.02' (length=5)
2 => string '01.03' (length=5)
3 => string '01.04' (length=5)
32 => string '02.02' (length=5)
33 => string '02.03' (length=5)
34 => string '02.04' (length=5)
35 => string '02.05' (length=5)
我的代码:
$key = array_search('/^01./', $tomb_datum);
echo $key;
var_dump($key);
这些preg匹配不起作用。
答案 0 :(得分:4)
有一个专门用于此目的的功能,preg_grep
。它将使用正则表达式作为第一个参数,将数组作为第二个参数。
请参阅以下示例:https://eval.in/538589
$haystack = array (
'01.02',
'01.03',
'02.05',
'02.07'
);
$matches = preg_grep ('/^01/i', $haystack);
print_r ($matches);
答案 1 :(得分:0)
如果您正在寻找过滤数组,请使用array_filter:
$resultArray = array_filter($array, function($elm) {
if (preg_match('/^01/', $elm)) {
return true;
}
return false;
});
希望这有帮助。
答案 2 :(得分:0)
您可以使用T-Regx library来使用各种数组过滤器:
pattern('^01.')->forArray($tomb_datum)->filter()
您还可以使用其他方法,例如:
filter()
-用于常规(顺序)数组filterAssoc()
-用于关联数组(filterAssoc()
保留键)filterByKeys()
-通过键而不是值过滤数组 PS:请注意,使用T-Regx时不需要/.?/
分隔符!