【问题标题】:Adding new value to an array using php使用php向数组添加新值
【发布时间】:2017-10-27 19:03:52
【问题描述】:

我一直在尝试向名为 products 的数组添加一个新的值对。

这是我在循环之前的数组:

"products": [
{
    "id": "050435",
    "name": "Test Product",
    "price": 10,
}
] 

这是我的循环:

$item = [];
foreach ($products as $product) {
    $item['new_item'] = 'item_value';
}
$products[] = $item;

现在我需要这样做以获取“item_value”,我需要使用此数组中的数据来获取此值,我可以稍后再做。但是,当我尝试将此项目添加到此数组时,我得到了这个结果。

"products": [
  {
    "id": "050435",
    "name": "Test Product",
    "price": 10,
  },
  {
    "new_item": "item_value"
  }
]

我尝试了 array_merge 并尝试了 $products[0][] 等,但我无法在 products 数组中得到它。任何帮助将非常感谢。这就是我想要的样子:

"products": [
{
    "id": "050435",
    "name": "Test Product",
    "price": 10,
    "new_item": "item_value"
},
]

【问题讨论】:

  • new_item IS 在 products 数组中。不确定您在寻找什么?
  • 很难理解你到底想得到什么结果,因为你正在从你所做的事情中得到完美的结果

标签: php arrays loops foreach


【解决方案1】:

应该就是这么简单:

$products[0]['new_item'] = 'item_value';

如果您对$products 数组中的每个产品都需要这个,那么:

foreach ($products as $product) {
    $product['new_item'] = 'item_value';
}

【讨论】:

    【解决方案2】:

    如果您想向产品数组插入新值,请使用此代码。

    foreach ($products as $product) {
        //$item['new_item'] = 'item_value';
        $product['new_item'] = 'item_value';
    }
    

    【讨论】:

      【解决方案3】:

      您需要遍历$products 的原始数组,并为每个$product 添加一个新的数组键。

      $products = [
          [
              "id"=> "050435",
              "name"=> "Test Product",
              "price"=> 10
          ],[
              "id"=> "012345",
              "name"=> "Test Product 2",
              "price"=> 15
          ]
      ];
      
      foreach ($products as $product) {
          $product['new_item'] = 'item_value';
      }
      
      echo "<pre>";
      print_r($product);
      echo "</pre>";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-12
        • 2012-08-21
        • 2019-11-06
        相关资源
        最近更新 更多