Stack Overflowers,
试图深入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"
}
}
我有一个形式_POSTs $ code的变量,并希望在上面的数组中搜索,看看上面的一个嵌套数组中是否存在$ code匹配。如果是这样,我希望能够将折扣金额和描述作为单个变量。
到目前为止,我有以下内容:
if(in_array($code, $codes)) {
//apply discount code using $discount_amount
}
其中$ codes输出在此问题顶部发布的数组。
答案 0 :(得分:1)
您可以使用的快速小功能:
function get_discount($arr, $code) {
foreach($arr as $item) {
if($item["code"] == $code) {
return $item["discount_amount"];
}
}
return NULL;
}
其中$ arr是你的数组(你转储)和$ code是你要检查的代码。应该返回折扣,或者为NULL。
没有机会对其进行测试(在此输入),但 按预期工作。
答案 1 :(得分:0)
这样的事情:
foreach ($pregeneratedCodes as $pregeneratedCode) {
if (in_array($pregeneratedCode['code'], $_POST['codes'])) {
$discount = floatval($pregeneratedCode['discount_amount']);
// now you can use $discount
}
}
这里没有验证,它假设你有一个数组作为$_POST['codes']
进入。它还假设您希望允许多个代码匹配。