如何从下面的数组中获取值

时间:2017-04-04 10:46:18

标签: php arrays

需要帮助从下面的数组中获取值,我在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的值。

我尝试了一切可能的方法让它发挥作用但却无法做到。 我知道这很简单,但很抱歉无法使其发挥作用。

提前感谢您的帮助。

3 个答案:

答案 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