Php 使用preg_匹配获取值

Php 使用preg_匹配获取值,php,request,preg-match,Php,Request,Preg Match,基于preg\u匹配,如何尝试获取$\u请求键。 $\u请求值将保存15h56的值 要获取我当前使用的$\u请求 foreach ($_REQUEST as $k => $v) { $a[] = "$k=$v"; } $ref_val = implode("&", $a); 因此,基本上我试图确定保存此数据的$u请求密钥,因为密钥将动态生成 我试着做了以下几件事 if(preg_match("/[0-9]n([0-9]+)[=]?(.*)$/", $ref_val, $m

基于
preg\u匹配
,如何尝试获取
$\u请求
键。
$\u请求
值将保存15h56的值

要获取我当前使用的
$\u请求

foreach ($_REQUEST as $k => $v) {
    $a[] = "$k=$v";
}
$ref_val = implode("&", $a);
因此,基本上我试图确定保存此数据的$u请求密钥,因为密钥将动态生成

我试着做了以下几件事

if(preg_match("/[0-9]n([0-9]+)[=]?(.*)$/", $ref_val, $matches)) {
$the_key_i_need = $matches[1];

为什么要使用
preg\u match()
-如果
$\u请求中有数据,只需使用:

如果您的
$\u请求
看起来像:

array( 'something_unknown_here' => '15h56')
然后执行
array\u search()
后,
$key
将等于
此处的未知内容

编辑:澄清后,该值似乎未知,但将与模式匹配。因此,您只需迭代
$\u REQUEST
即可找到密钥,如下所示:

$found_key = null;
foreach ($_REQUEST as $k => $v) {
    if( preg_match( '#\d+h\d+#', $v)) {
        $found_key = $k;
        break;
    }
}

现在,
$found\u key
要么为
null
,表示
$\u REQUEST
中没有与模式匹配的值,要么是
$\u REQUEST
中的某个值。请注意,这只会找到值与模式匹配的第一个键。

您几乎不必担心此站点上的“快速”帮助,通常会有一场竞赛来为您找到一个好答案。你可以删除最后一行。这就是问题所在,我不知道哪一行的值会被回传到变量中,如果你知道我想说什么,我正在尝试根据numberhnumber查找数据?所以你想要一个\d\dh\d\dPeter的正则表达式,我该如何在我当前的代码中添加它以进行preg_匹配?@Curtis-我更新了我的答案,请看它是否有用。如果可能有多个值与模式匹配,并且您想捕获多个键,请告诉我。@nickb刚刚添加了您要查找的答案
$found_key = null;
foreach ($_REQUEST as $k => $v) {
    if( preg_match( '#\d+h\d+#', $v)) {
        $found_key = $k;
        break;
    }
}