为什么我的PHP数组不工作?

为什么我的PHP数组不工作?,php,arrays,if-statement,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代码,我已经把它全部分解了,我正在考虑如何处理我的&或数组中的??谢谢你的帮助 <? // PROMO CODE $p

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

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


/cart.php?promocode=sale20&productcode=555_red
// WILL ECHO YES BUT NOT WORKING
这是PHP代码,我已经把它全部分解了,我正在考虑如何处理我的
&
数组中的
??谢谢你的帮助

<?
// 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";
        }
    }
?>

这不是您想要的数组

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


它可以在数组中正常工作()

它不是您想要的数组

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

它可以与in_数组()配合使用

这一行意味着
$saleitemlist
是一个数组,它只包含一个元素
“555红色、305黑色、582蓝色、593黑色”

如果你想知道
555_red
是一个元素,
305_black
是另一个元素,依此类推。您必须执行以下操作:

$saleitemlist=array("555_red", "305_black", "582_elecblue", "593_black");
这一行意味着
$saleitemlist
是一个数组,它只包含一个元素
“555红色、305黑色、582蓝色、593黑色”

如果你想知道
555_red
是一个元素,
305_black
是另一个元素,依此类推。您必须执行以下操作:

$saleitemlist=array("555_red", "305_black", "582_elecblue", "593_black");
这是错误的:

 $saleitemlist=array("555_red, 305_black, 582_elecblue, 593_black");
正确的答案应该是:

 $saleitemlist=array("555_red", "305_black", "582_elecblue", "593_black");
数组的每个元素都应该单独用qutes包装。

这一个是错误的:

 $saleitemlist=array("555_red, 305_black, 582_elecblue, 593_black");
正确的答案应该是:

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

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

有多琐碎?让我试试。我原以为PHP对数组使用
,但您已将所有内容都放在
中,因此它的行为将类似于字符串。我现在收到此错误
警告:in_array()希望参数2是数组,如果给定空值
,但你您已将所有内容放入
中,因此它的行为将类似于字符串。我现在收到此错误
警告:in_array()期望参数2为数组,如果
”,则为空。Blackbenzkid您能告诉我您在说什么吗?它看起来很好,现在正在工作。我的数组是用错误的变量设置的。非常感谢你,作为一个回答的朋友,我重复并标记了你。也感谢你的销售代表。