1

スタックオーバーフロー、

PHP に飛び込もうとしましたが、行き詰まったようです。var_dump($codes) が次のような事前生成された配列があります。

array(2) {
  [0]=>
  array(3) {
    ["code"]=>
    string(5) "01332"
    ["description"]=>
    string(19) "Derby Discount Code"
    ["discount_amount"]=>
    string(2) "15"
  }
  [1]=>
  array(3) {
    ["code"]=>
    string(5) "01283"
    ["description"]=>
    string(25) "South Derby Discount Code"
    ["discount_amount"]=>
    string(2) "20"
  }
}

$code の変数を _POST するフォームがあり、上記の配列を検索して、上記のネストされた配列のいずれかに $code と一致するかどうかを確認したいと考えています。だとしたら、割引額と説明を個別の変数として取得できるようにしたいです。

これまでのところ、次のものがあります。

if(in_array($code, $codes)) { 
    //apply discount code using $discount_amount
}

$codes は、この質問の上部に投稿された配列を出力します。

4

2 に答える 2

1

あなたが使用できる簡単な小さな機能:

function get_discount($arr, $code) {
    foreach($arr as $item) {
        if($item["code"] == $code) {
            return $item["discount_amount"];
        }
    }

    return NULL;
}

$arr は (ダンプした) 配列で、 $code はチェックしているコードです。割引または NULL を返す必要があります。

テストする機会はありませんでしたが (ここに入力しました)、意図したとおりに動作するはずです。

于 2013-02-11T20:07:47.720 に答える
0

このようなもの:

foreach ($pregeneratedCodes as $pregeneratedCode) {
    if (in_array($pregeneratedCode['code'], $_POST['codes'])) {
        $discount = floatval($pregeneratedCode['discount_amount']);
        // now you can use $discount
    }
}

ここには検証はなく、配列が として入ってくると想定しています$_POST['codes']。また、複数のコードの一致を許可することも前提としています。

于 2013-02-11T20:06:48.210 に答える