在使用PDT获取和呈现数据时需要帮助

时间:2013-02-27 15:09:20

标签: php loops foreach

我已成功使用PayPal和我自己的付费按钮设置Sandbo。现在在我的thankyoupage上,用户在完成后重定向,我想将详细信息打印给用户。使用PDT,我可以获得发送的数据,它只是我如何访问它以便很好地呈现它。

我有$ keyarray中的数据,这是我的pdt中的一些PHP代码: 屏幕截图:http://snag.gy/PdsQH.jpg

$firstname = $keyarray['first_name'];
$lastname = $keyarray['last_name'];
$itemname = $keyarray['item_name'];
$amount = $keyarray['payment_gross'];
$id = $keyarray['item_number'];

echo ("<div id='welcomeText'>Thank you for your purchase!</div>");
echo ("<p><div id='bold'>Payment Details</div></p><br>\n");
echo ("<div class='abouttext'>Name: $firstname $lastname</div>\n");

$string1 = 'item_number';
$string2 = 'item_name';
$string3 = 'quantity';
$count = count($keyarray);
for($idx = 1; $idx < $count; $idx ++) {
if (isset($string2) && 'item_name' != null)
echo ("<div class='abouttext'>Item name: ".$keyarray[$string2.$idx]."</div>\n");
echo ("<div class='abouttext'>Item ID: ".$keyarray[$string1.$idx]."</div>\n");
echo ("<div class='abouttext'>Qty: ".$keyarray[$string3.$idx]."</div>\n");

}

问题在于它循环了65次,因为它很长。我想改变$ count = count($ keyarray);改为计算item_number在$ keyarray中的次数,类似于 $ count = count($ keyarray ['item_number'); - 那可能吗?我也可以在10而不是$ count中进行硬编码并使其循环10次,结果不会那么糟糕。

1 个答案:

答案 0 :(得分:1)

注意:如果您可以在源位置更改$keyarray的内容,则会更好。

您可以在循环中创建名称:

e.g。

$string = 'item_name';

$arr_val = array(
        'item_name1' => 'Kot1',
        'item_name2' => 'Kot2',
        'item_name3' => 'Kot3',
        'item_name4' => 'Kot4',
        'item_name5' => 'Kot5'
        );


for($idx =1; $idx < 6; $idx ++) {
    var_dump($arr_val[$string.$idx]);
}

这将输出:

  

字符串'Kot1'(长度= 4)

     

字符串'Kot2'(长度= 4)

     

字符串'Kot3'(长度= 4)

     

字符串'Kot4'(长度= 4)

     

字符串'Kot5'(长度= 4)

编辑:使用以下代码在$keyarray中找到实际的项目编号。

$array_keys = array_keys($keyarray);
$count =0;
foreach($array_keys as $element) {
    if (!strncmp('item_number', $element, strlen('item_number')))
        $count++;
}