【问题标题】: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);
?>