将数组推送到PHP数组中

将数组推送到PHP数组中,php,arrays,session,Php,Arrays,Session,我有一个简单的查询,它在$\u会话['cart\u items']键中查找相同的id。这是输出: 以及守则: $statement = $conn->query("SELECT * FROM product WHERE id IN (".implode(',',array_keys($_SESSION['cart_items'])).")"); $data = array(); while($row = $statement->fetch()) { $data[] =

我有一个简单的查询,它在
$\u会话['cart\u items']
键中查找相同的id。这是输出:

以及守则:

$statement = $conn->query("SELECT * FROM product WHERE id IN (".implode(',',array_keys($_SESSION['cart_items'])).")");

$data = array();

while($row = $statement->fetch()) {
    $data[] = $row;
}
print_r($data);
这很好,但我想在数组中添加第5个元素。该值将来自while循环内的关联数组
$\u会话['cart\u items'][$row['id']]]
的值。到目前为止,我所做的是:

while($row = $statement->fetch()) {
    $data[] = $row;
    if(array_key_exists($row['id'], $_SESSION['cart_items']))
    {
        $another = $_SESSION['cart_items'][$row['id']];
        array_push($data, $another);
    }
}
print_r($data);
但我得到的结果是:

如您所见,还有一个额外的
[1]=>23
[3]=>47
,但这不是我想要的。我想发生的事情是这样的:


我希望它是数组中数组的一部分。或者更像第五元素。我可以这样做吗?

试试这个,告诉我它是否适合你

while($row = $statement->fetch()) {

    if(array_key_exists($row['id'], $_SESSION['cart_items']))
    {
        $another = $_SESSION['cart_items'][$row['id']];
        array_push($row, $another);
    }
    $data[] = $row;
}

print_r($data);
关于你的第二个问题,试试这个,让我知道

 while($row = $statement->fetch()) {

if(array_key_exists($row['id'], $_SESSION['cart_items']))
{
    $another = $_SESSION['cart_items'][$row['id']];

    $new_row = $row+array("YOUR_TEXT" => $another);

}
  $data[] = $new_row;
}
 print_r($data);

未插入子数组的原因
因为您将其推入主阵列中,
美元数据

解决方案:
在推之前
创建一个新变量

$newRow = $row;
然后:
推动你的第五个元素

$another = $_SESSION['cart_items'][$row['id']];
array_push($newRow, $another);
最后,将包含第5个元素的新行推送到$data

$data[] = $newRow;
因此,您的新php代码如下所示

<?php


while($row = $statement->fetch()) {
    $newRow = $row;
    if(array_key_exists($row['id'], $_SESSION['cart_items']))
    {
        $another = $_SESSION['cart_items'][$row['id']];
        array_push($newRow, $another);
    }
    $data[] = $newRow;
}
print_r($data);

你说的新钥匙是什么意思?不,不,没关系!我没听清你的问题这就是我问你的原因!问清楚了才能得到答案!谢谢你!我的意思是,除了[4]=>47,我还需要[randomtext]=>47:D