问题描述
|
我想知道是否可以在
array_seach()
或array_keys_exist
中使用正则表达式或preg_match()
?
即。
array_keys_exist($array,\"^\\d+$\")
匹配所有纯数字字符的键
解决方法
我不知道它是否完全适合您的需求,但是您应该看一下
preg_grep
函数,该函数将根据正则表达式检查字符串数组并返回所有匹配的数组元素。您可以通过在返回值array_keys
上使用preg_grep
来进行键操作。
这与array_search
/array_key_exists
有所不同,它们在找到匹配项后停止,因为可能只有一个匹配项。另一方面,使用正则表达式时,可能有许多满足条件的元素,因此return4ѭ将返回所有元素。
,对于这种特定情况,您可以使用:
= array_filter(array_keys($array),\"is_numeric\")
为了使键与其他正则表达式匹配,您需要自定义回调。
(也有RecursiveRegexIterator
,但是语法开销更大。)