使用php向数组添加新值

时间:2017-10-27 19:03:53

标签: php arrays loops foreach

我一直在尝试将新值对添加到名为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"
},
]

3 个答案:

答案 0 :(得分:1)

应该很简单:

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

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

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

答案 1 :(得分:1)

如果要向产品阵列插入新值,请使用此代码。

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

答案 2 :(得分:-1)

您需要循环遍历$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>";