php - 检查是否存在与正则表达式匹配的数组键

标签 php arrays regex string

是否有一种快速(更)的方法来检查是否存在与模式匹配的数组键?我的目标是使用以“song_”开头的键的值,无论它如何结束。

目前我正在这样做:

foreach($result as $r){
   // $r = array("title"=>'abc', "song_5" => 'abc')
   $keys = array_keys($r);
   foreach($keys as $key){
       if (preg_match("/^song_/", $key) {
          echo "FOUND {$r[$key]}";
       }
   }           
}

有没有办法跨数组进行 preg_match,或者 foreach 通过 array_keys 是最原生的方法吗?

最佳答案

如何使用 preg_grep :

$keys = ['song_the_first', 'title', 'song_5'];
$matched = preg_grep('/^song_/', $keys);
# print_r($matched)
#
# Array
# (
#     [0] => song_the_first
#     [2] => song_5
# )

关于php - 检查是否存在与正则表达式匹配的数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25226051/

相关文章:

php - 简单的 PHP Post-Redirect-Get 代码示例

javascript - PHP json_encode() - SQL 限制和 AJAX js

PHP 带有多个下拉框的搜索

c - 如何在 C 中创建字符串数组?

c# - 正则表达式以匹配模式

java - TCP 服务器 Java 与 PHP

c++ - 如何从 const float* 中获取 C++ vector

大小为零的 Java 数组初始化

.net - 正则表达式匹配右括号不在引号中

python - 正则表达式和 unicode 的问题