Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在使用PDT获取和显示数据时需要帮助_Php_Loops_Foreach - Fatal编程技术网

Php 在使用PDT获取和显示数据时需要帮助

Php 在使用PDT获取和显示数据时需要帮助,php,loops,foreach,Php,Loops,Foreach,我已经成功地用贝宝和我自己的支付按钮设置了Sandbo。现在在我的Thankyou页面上,用户在经过一段时间后被重定向,我想将详细信息打印给用户。有了PDT,我就可以发送数据,这就是我如何访问数据并将其很好地呈现出来的方法 我有$keyarray中的数据,这是我的pdt中的一些PHP代码: 截图: $firstname=$keyarray['first_name']; $lastname=$keyarray['last_name']; $itemname=$keyarray['item_name

我已经成功地用贝宝和我自己的支付按钮设置了Sandbo。现在在我的Thankyou页面上,用户在经过一段时间后被重定向,我想将详细信息打印给用户。有了PDT,我就可以发送数据,这就是我如何访问数据并将其很好地呈现出来的方法

我有$keyarray中的数据,这是我的pdt中的一些PHP代码: 截图:

$firstname=$keyarray['first_name'];
$lastname=$keyarray['last_name'];
$itemname=$keyarray['item_name'];
$amount=$keyarray['payment_gross'];
$id=$keyarray['item_number'];
echo(“感谢您的购买!”);
echo(“付款详细信息”


\n”); echo(“名称:$firstname$lastname\n”); $string1='项目编号'; $string2='项目名称'; $string3=‘数量’; $count=计数($keyarray); 对于($idx=1;$idx<$count;$idx++){ 如果(isset($string2)&&“项目名称”!=null) echo(“项目名称:“.$keyarray[$string2.$idx]。”\n”); echo(“项目ID:“.$keyarray[$string1.$idx]。”\n”); echo(“数量:“..keyarray[$string3.$idx]”“\n”); }
问题是它循环了65次,因为它太长了。我想更改$count=count($keyarray);相反,要计算item_编号在$keyarray中的时间,请执行以下操作
$count=count($keyarray['item_number'))-可能吗?我也可以用10代替$count硬编码,并使其循环10次,结果不会那么糟糕。

注意:如果可以在源代码处更改
$keyarray
的内容,效果会更好

可以在循环中创建名称:

e、 g


item\u number4
item\u number5
在哪里?它们还没有被使用,但不会有什么区别。我需要知道如何循环发送的交易id($keyarray),并且每次出现$id/item\u编号时,我都会回显该产品的详细信息。现在foreach中的$id($keyarray作为$id)就是每个entryWow的值谢谢!使用以下代码:
$string1='item_number';$string2='item_name';for($idx=1;$idx<6;$idx++){echo($keyarray[$string2.$idx]);echo($keyarray[$string1.$idx])}
我成功地打印了名称和Id。但现在的下一个问题是如何处理它的外观?我尝试了:
echo(“项目Id:($keyarray[$string1.$idx])\n”);
但它不是有效的代码只需拆分字符串:
echo(“项目Id:(“$keyarray[$string1.$idx])”)\n)
Thx,我通过几行和回音解决了这个问题,但是你的解决方案看起来好多了……现在输出:我现在的问题是它每次都打印整个数组长度。有没有办法编辑这个:
$count=count($keyarray);
到例如
$count=count($keyarray[item\u number])
所以我得到了不同的商品号,即不同的产品在它们的篮子里,插入65个,这都是发送的条目。我没有真正理解你说的,因此我在开始时问
缺少的商品号在哪里
。我应该更新第一篇文章。除了$itemname=$keya之外,我不需要任何其他东西rray['item_name'];和$id=$keyarray['item_number'];因为循环。我得到了所有正确的数据,因此它只打印/循环65次:$count=count($keyarray);for($idx=1;$idx<$count;$idx++)我需要$count来计算发送的次数,以将循环设置为循环多次。我可以在3中硬编码,现在我会得到很好的结果,但在有更多产品时不会。很难解释!
$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");

}
$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]);
}
$array_keys = array_keys($keyarray);
$count =0;
foreach($array_keys as $element) {
    if (!strncmp('item_number', $element, strlen('item_number')))
        $count++;
}