PHP在多维数组中添加元素

时间:2018-01-19 09:27:48

标签: php arrays multidimensional-array

阵列:

Array
(
    [Items] => Array
        (
            [0] => Array
                (
                    [Item] => 211
                    [Unit] => 11
                    [Quantity] => 2
                    [GST] => True
                )

            [1] => Array
                (
                    [Item] => 210
                    [Unit] => 11
                    [Quantity] => 1
                    [GST] => True
                )

        )

)

PHP:

foreach ($data['Items'] as $Item) {
    array_push($Item, 'User' => 1);
}

您好,大家好,有人可以告诉我如何在多维数组中添加元素?

4 个答案:

答案 0 :(得分:1)

你的循环有两个问题。

首先,这个语法array_push($Item, 'User' => 1);是错误的,array_push为数组添加了一个值,而=>只能在数组中使用。 <{1}}代替array_push,您可以使用$arr[] = 'your value',结果将类似。

其次,要使$Item变量在循环外保存附加值,您需要通过引用传递它,如下所示:

foreach ($data['Items'] as &$Item) {
    $Item['User'] = 1;
}

答案 1 :(得分:0)

您必须使用[ ]访问数组,例如此代码使用键2插入新项目:

$data['Items'][] = array([Item] => 234
                [Unit] => 22
                [Quantity] => 3
                [GST] => False);

或者,如果您需要为每个项添加元素:

foreach ($data['Items'] as $k)
{
    $k[] = array([Item] => 234
                    [Unit] => 22
                    [Quantity] => 3
                    [GST] => False);
}

请点击此处了解详情:PHP's Arrays

答案 2 :(得分:0)

尝试这种方式:

<?php
$prod_id=1;$size="s";$colour="red"; 
$foo["cart"] = array (  
    1 => array (  
        array ('size'=>'S','color'=>'white')  
        ,  
        array ('size'=>'M','color'=>'red')  
    ),  
    2 => array (  
        array ('size'=>'S','color'=>'black')  
        ,  
        array ('size'=>'XL','color'=>'royal')  
    )  
); 
array_push($foo["cart"][$prod_id], array ("quantity" => 1, "size" => $size, "colour" => $colour));   
print_r($foo);
?>

答案 3 :(得分:-1)

你没有说出你想要的东西,但只是你可以这样添加     

$array = Array
(
    'Items' => Array
        (
            '0' => Array
                (
                    "Item" => 211,
                    "Unit" => 11,
                    "Quantity" => 2,
                    "GST" => True
                )

        )

);

$array["Items"][0]["new_value"] = "Some Value";

echo "<pre>";
print_r($array);