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');のようになります。-それは可能ですか?$ countの代わりに10でハードコーディングして、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 に答える