为什么我的PHP数组无法正常工作?

时间:2012-11-12 09:53:57

标签: php arrays if-statement

我正在尝试在购物车中添加促销部分。这是一个临时黑客,但代码不起作用。

/cart.php?promocode=1&productcode=434_red
// WILL ECHO NO


/cart.php?promocode=sale20&productcode=555_red
// WILL ECHO YES BUT NOT WORKING

这是PHP代码,我已经把它全部打破了,我正在考虑与我的&&in_array做些什么?感谢帮助。

<?
// PROMO CODE
$promocode=$_GET["promocode"];
$productcode=$_GET["productcode"];

// SALE LIST (ONLY SALE20 WORKS ON THIS)
$saleitemlist=array("555_red, 305_black, 582_elecblue, 593_black");

// PROMO CODE VALIDATION CHECK

// ALLOW EXISTING CODES TO WORK
if($promocode=="chocolate2" || $promocode=="post") {
        $promocode_validate_check = $_POST['promocode']; // APPLY CART FUNCTION
    } else {
        // NOT AN EXISTING CODE - IF SALE20, APPLY THE CODE OTHERWISE DO NOTHING
        if($promocode=="sale20" && in_array($productcode, $saleitemlist)) {
            $promocode_validate_check = $_POST['promocode']; // APPLY CART FUNCTION
            echo "YES"; 
        } else {
            echo "NO";
        }
    }
?>

3 个答案:

答案 0 :(得分:3)

它不是你想要的数组

  $saleitemlist=array("555_red, 305_black, 582_elecblue, 593_black");

 $saleitemlist=array("555_red", "305_black", "582_elecblue", "593_black");

使用in_array()check codepad

可以正常工作

答案 1 :(得分:3)

$saleitemlist=array("555_red, 305_black, 582_elecblue, 593_black");

这一行意味着$saleitemlist是一个只包含一个"555_red, 305_black, 582_elecblue, 593_black"元素的数组。

如果您希望555_red是一个元素,305_black是另一个元素,依此类推。你必须做以下事情:

$saleitemlist=array("555_red", "305_black", "582_elecblue", "593_black");

答案 2 :(得分:0)

这个错了:

 $saleitemlist=array("555_red, 305_black, 582_elecblue, 593_black");

正确的一个应该是这个:

 $saleitemlist=array("555_red", "305_black", "582_elecblue", "593_black");

数组的每个元素都应该单独用qutes包装。