0

我已经成功地使用 PayPal 和我自己的支付按钮设置了 Sandbo。现在在我的感谢页面上,用户在购买后被重定向,我想将详细信息打印给用户。使用 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 次,结果不会那么糟糕。

4

1 回答 1

1

注意:如果您可以更改$keyarray源代码的内容,那就更好了。

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

例如

$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++;
}
于 2013-02-27T16:17:40.747 回答