【问题标题】:PHP add element in multidimensional array [duplicate]PHP在多维数组中添加元素[重复]
【发布时间】:2018-06-28 12:03:22
【问题描述】:

如何向这个多维数组添加元素?

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);
}

【问题讨论】:

标签: php arrays multidimensional-array


【解决方案1】:

你的循环有两个问题。

首先,array_push($Item, 'User' => 1); 这个语法是错误的,array_push 向数组添加了一个值,=> 只能在数组内部使用。您可以使用$arr[] = 'your value' 而不是array_push,结果将相似。

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

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

【讨论】:

    【解决方案2】:

    你没有说你到底想要什么,但你可以像这样添加

    $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);
    

    【讨论】:

      【解决方案3】:

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

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

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

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

      阅读此处了解更多信息:PHP's Arrays

      【讨论】:

        【解决方案4】:

        试试这个方法:

        <?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);
        ?>
        

        【讨论】:

          猜你喜欢
          • 2020-08-08
          • 1970-01-01
          • 2011-03-07
          • 2016-04-24
          • 1970-01-01
          • 2012-08-19
          • 2021-12-30
          • 2019-12-08
          相关资源
          最近更新 更多