我已成功使用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次,结果不会那么糟糕。
答案 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++;
}