Можно ли использовать регулярное выражение с помощью функции php array_key_exists()
?
Например:
$exp = "my regex"; array_key_exists($exp, $array);
Спасибо!
Вы можете извлечь ключи массива с помощью array_keys (), а затем использовать preg_grep () в этом массиве:
function preg_array_key_exists($pattern, $array) { $keys = array_keys($array); return (int) preg_grep($pattern,$keys); }
,
$arr = array("abc"=>12,"dec"=>34,"fgh"=>56); var_dump(preg_array_key_exists('/c$/',$arr)); // check if a key ends in 'c'. var_dump(preg_array_key_exists('/x$/',$arr)); // check if a key ends in 'x'. function preg_array_key_exists($pattern, $array) { // extract the keys. $keys = array_keys($array); // convert the preg_grep() returned array to int..and return. // the ret value of preg_grep() will be an array of values // that match the pattern. return (int) preg_grep($pattern,$keys); }
Вывод:
$php a.php int(1) int(0)
Боюсь, что нет. Вы можете перебирать ключи массива и выполнять совпадения с ними:
$keys = array_keys($array); foreach ($keys as $key) if (preg_match($exp, $key) == 1) return $array[$key];