需要帮助从下面的数组中获取值,我在print_r($_REQUEST)
中得到以下数组。
Array (
[DATA] => RespCode=0&Message=Transaction+Successful&TxnID=547635502&ePGTxnID=201704043545620&AuthIdCode=087470&RRN=000064005897&Amount=2&CVRespCode=Y&Reserve3=null&MID=96065339&isCitrusNBFlag=false
[MID] => 96065339
[EncryptedData] => 58E0AF8EA8E2A31F3117AEFBD198CAE863E4B754
[roundcube_cookies] => enabled
[PHPSESSID] => f7ok4hhl8sdaig86k04tsr4ss3
[__zlcmid] => eXg8skYnKUkdck
)
我想要RespCode和CVRespCode的值。
我尝试了一切可能的方法让它发挥作用但却无法做到。 我知道这很简单,但很抱歉无法使其发挥作用。
提前感谢您的帮助。
答案 0 :(得分:4)
您需要parse_str()
,
parse_str($array['DATA'], $output);
echo $output['RespCode'];
echo $output['CVRespCode'];
这是Demo
以下是CLI的测试结果
[akshay@db2 tmp]$ cat test.php
<?php
$array=array(
"DATA"=>"RespCode=0&Message=Transaction+Successful&TxnID=547635502&ePGTxnID=201704043545620&AuthIdCode=087470&RRN=000064005897&Amount=2&CVRespCode=Y&Reserve3=null&MID=96065339&isCitrusNBFlag=false"
);
parse_str($array["DATA"], $output);
echo "Resp Code: ". $output['RespCode'].PHP_EOL;
echo "CV Resp Code: ". $output['CVRespCode'].PHP_EOL.PHP_EOL;
print_r($output);
?>
<强>输出强>
[akshay@db2 tmp]$ php test.php
Resp Code: 0
CV Resp Code: Y
Array
(
[RespCode] => 0
[Message] => Transaction Successful
[TxnID] => 547635502
[ePGTxnID] => 201704043545620
[AuthIdCode] => 087470
[RRN] => 000064005897
[Amount] => 2
[CVRespCode] => Y
[Reserve3] => null
[MID] => 96065339
[isCitrusNBFlag] => false
)
答案 1 :(得分:0)
您可以使用explode()对字符串进行解码,并将其保存在var
中,如下所示:
$explodedArray = explode( '&', $yourArray['DATA']);
然后你就可以这样使用它:$explodedArray[0]
其中0就是你的RespCode
如果值可能位于不同的位置,您可以对字符串进行expode,然后循环直到找到所需的值。
$explodedArray = explode( '&', $yourArray['DATA']);
foreach($explodedArray as $val) {
if($val == "RespCode") {
//do something with respcode
}
}
答案 2 :(得分:0)
parse_str($_REQUEST["DATA"], $output);
$resp=$output['RespCode'];
$cod=$output['CVRespCode'];
完成了所需的工作,我不确定为什么有些人在提供减去反馈然后帮助时如此之快。谢谢@akshay @Samarth