PHP使用preg_match或regex作为array_search的值或array_keys_exist的键

问题描述

| 我想知道是否可以在
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
,但是语法开销更大。)