如何在php中更改数组推送的结果

如果条件为真,我有以下代码将数据推送到数组中,但结果不是我所希望的;


         <?php

$sql = "SELECT * FROM cart WHERE sess_id = '$sess_id'";

$result = mysqli_query($conn, $sql);   

$items= array();


if (mysqli_num_rows($result) > 0) {

    // output data of each row


   while($row = mysqli_fetch_assoc($result)) 

{

    $items[] = [

        'sku' => $row["prod_sku"], 

        'quantity' => (int)$row["prod_qty"]

    ];

}

if ($postage === 4.00){

    array_push($items, "sku_GSxe2lDNfK5b6E", 1);

}

}

        $conn->close();

             ?>

我希望第二条记录看起来与第一条相同,但不包括记录信息。有人可以告诉我该怎么做。我没有对数组做过很多事情,也无法在任何地方找到我需要的信息。预先感谢。


[{"sku":"sku_GGBzZqwz44UhRf","数量":1},"sku_GSxe2lDNfK5b6E",1]


我希望它像这样输出


[{"sku":"sku_GGBzZqwz44UhRf","quantity":1}, {"sku":"sku_GSxe2lDNfK5b6E","quantity":1},]


慕尼黑5688855
浏览 92回答 1
1回答

MMTTMM

您现有的代码将两个单独的值推送到数组中:if ($postage === 4.00){&nbsp; &nbsp; array_push($items, "sku_GSxe2lDNfK5b6E", 1);}您想将另一个数组推入数组:if ($postage === 4.00){&nbsp; &nbsp; array_push($items, ["sku" => "sku_GSxe2lDNfK5b6E", "quantity" => 1]);}另请注意,您的代码容易受到SQL 注入攻击。您应该通过mysqli或PDO使用带有绑定参数的准备好的语句。这篇文章有一些很好的例子。
打开App,查看更多内容
随时随地看视频慕课网APP