从php中的键值对列表中获取值

时间:2017-01-11 12:22:01

标签: php arrays

我想从键值列表中显示特定值。  这是我的代码:

if (isset($_POST) && count($_POST)>0 )
{ 
    foreach($_POST as $paramName => $paramValue) {
            echo "<br/>" . $paramName . " = " . $paramValue;
    }
}

输出中

ORDERID = ORDS3700373
TXNAMOUNT = 200.00
CURRENCY = INR
TXNID = 32221284
BANKTXNID = 475815
STATUS = TXN_SUCCESS
RESPCODE = 01
RESPMSG = Txn Successful.
TXNDATE = 2017-01-10 18:13:25.0
GATEWAYNAME = WALLET
BANKNAME = 
PAYMENTMODE = PPI
CHECKSUMHASH = 

这里我只想显示ORDERID和TXNID ..我如何获得该值?

5 个答案:

答案 0 :(得分:1)

您可以通过它的字段名称轻松访问帖子值,而不是遍历所有帖子元素。只需直接访问这些元素,如下所示:

if(isset($_POST['ORDERID'])) {
    echo 'ORDERID = '.$_POST['ORDERID'];
}
if(isset($_POST['TXNID'])) {
    echo 'TXNID= '.$_POST['TXNID'];
}

答案 1 :(得分:0)

你可以像这样在循环中使用if条件

if (isset($_POST) && count($_POST)>0 )
{ 
    foreach($_POST as $paramName => $paramValue) {
       if($paramName == 'ORDERID' || $paramName == 'TXNID')
            echo "<br/>" . $paramName . " = " . $paramValue;
    }
}

答案 2 :(得分:0)

添加if like

if($paramName == "ORDERID" || $paramName == "TXNID") {

在foreach之后,记得在echo语句行之后关闭它

答案 3 :(得分:0)

不要用循环过度复杂化一项微不足道的任务。 只需放下循环并直接回显两个值:

// Assuming the two values are expected to come in pair: 
if(isset($_POST['ORDERID']) && isset($_POST['TXNID'])) {
    echo "<br/>ORDERID = " . $_POST['ORDERID'];
    echo "<br/>TXNID = " . $_POST['TXNID'];
}

如果你坚持循环,那么你可以浏览你需要的属性名称

foreach(array('ORDERID', 'TXNID') as $paramName) {
    if(isset($_POST[$paramName])) {
        echo "<br/>" . $paramName . " = " . $_POST[$paramName];
    }
}

答案 4 :(得分:0)

将评论移至答案。

您不需要循环发布它只是global array。您可以像任何关联数组一样访问任何value的{​​{1}},因为它就是这样。同样,这些key可以像任何其他

一样使用
value

安全注意事项永远不会信任用户输入,并在回显或保持之前清理所有if(isset($_POST['ORDERID'])){ $orderid = $_POST['ORDERID']; } if(isset($_POST['TXNID'])){ $txnid = $_POST['TXNID']; } // Should use htmlspecialchars() or htmlentities() here // but didn't want to confuse OP. It is for security. echo "ORDERID is: " . $orderid . " and TXNID is: " . $txnid; 变量。互联网上的文章远比我在这里总结得多。