Php 在关联数组中插入新数组
我试图在多维/关联数组中插入一个新数组。但是它不起作用,Php 在关联数组中插入新数组,php,multidimensional-array,Php,Multidimensional Array,我试图在多维/关联数组中插入一个新数组。但是它不起作用,array\u push()也不起作用。我目前的代码如下: $myJson = array( array ( 'id' => 1, 'name' => 'Jane Doe', 'age' => 26 ), array ( 'id' => 2, 'name' => 'Josélito', 'age' => 35 ) ); $myAr =
array\u push()
也不起作用。我目前的代码如下:
$myJson = array(
array (
'id' => 1,
'name' => 'Jane Doe',
'age' => 26
),
array (
'id' => 2,
'name' => 'Josélito',
'age' => 35
)
);
$myAr = array(
'id' => 5,
'channel' => 'pimbaTv',
'followers' => 15014
);
foreach($myJson AS $js) {
$js['event'][] = $myAr;
//$js['event'] = $myAr;
}
所以我会有这样的东西:
array (
'id' => 1,
'name' => 'Jane Doe',
'age' => 26,
'event' => array(
'id' => 5,
'channel' => 'pimbaTv',
'followers' => 15014
);
),
array (
'id' => 2,
'name' => 'Josélito',
'age' => 35,
'event' => array(
'id' => 5,
'channel' => 'pimbaTv',
'followers' => 15014
);
)
我正在尝试我能找到的一切,但仍然没有解决方案。您需要使用循环中的
$key
访问原始数组$myJson
,以分配新值。默认情况下,foreach循环中的$value
不是通过引用传递的
请执行以下操作:
foreach($myJson AS $key => $value) {
$myJson[$key]['event'] = $myAr;
}
您还可以看到其他答案。您需要使用循环中的
$key
访问原始数组$myJson
,以分配新值。默认情况下,foreach循环中的$value
不是通过引用传递的
请执行以下操作:
foreach($myJson AS $key => $value) {
$myJson[$key]['event'] = $myAr;
}
您还可以看到其他答案。您可以像这样在
循环中使用对数组的按引用传递。供参考
您可以像这样对循环中的数组使用pass-by-reference。供参考
在新的php版本中,应该使用引用来编辑其内容
而不是做:
foreach($myJson AS $js) {
$js['event'][] = $myAr;
}
你应该:
foreach($myJson AS &$js) {
$js['event'][] = $myAr;
}
“为了能够直接修改循环中带&$value之前的数组元素。在这种情况下,值将通过引用分配。”在新的php版本中,应使用引用编辑其内容
而不是做:
foreach($myJson AS $js) {
$js['event'][] = $myAr;
}
你应该:
foreach($myJson AS &$js) {
$js['event'][] = $myAr;
}
“为了能够直接修改循环中的数组元素,在$value之前加上&。在这种情况下,值将通过引用分配。”通常使用array_push()函数在数组中推送新数据,但必须具有顺序索引:$arr[0],$ar[1]。。等等
不能在关联数组中直接使用它。但是看看你的数组结构,因为你的子数组有这种索引,你仍然可以使用array push,但是你必须指定索引。这是一个例子:
array_push($myJson["event"], $myAr);
希望对您更清楚。通常使用array_push()函数在数组中推送新数据,但必须有一个顺序索引:$arr[0],$ar[1]。。等等
不能在关联数组中直接使用它。但是看看你的数组结构,因为你的子数组有这种索引,你仍然可以使用array push,但是你必须指定索引。这是一个例子:
array_push($myJson["event"], $myAr);
希望对您更清楚。请分享您尝试过的内容。在没有对象的数组的循环中,您必须显式地使用reference&for值。否则该表将不会被修改。@Robert是否有理由使用reference
而不是@Madhur所示的示例?因为两者都给出了相同的结果。在@Madhur中,他使用键寻址修改原始数组,两者都会执行相同的操作。引用的缺点是引用$value在循环后仍然保留。请分享您尝试过的内容。在有数组但没有对象的循环中,必须显式使用引用和for value。否则该表将不会被修改。@Robert是否有理由使用reference
而不是@Madhur所示的示例?因为两者都给出了相同的结果。在@Madhur中,他使用键寻址修改原始数组,两者都将执行相同的操作。reference的缺点是reference$值在循环后仍然保留。工作非常完美@PravaGoopro高兴地帮助:)您可以将其视为已接受的答案(Green Tik:)是否有理由不使用该方法在<代码>通过引用< <代码> >下面显示?谢谢@PlayHardGoPro通过引用传递有可能无意中修改原始数组的其他内容(我们不希望这样)@MadhurBhaiya在这两种情况下,您都会修改数组的原始内容。这只是稍微安全一点,因为循环执行后仍保留引用,这可能导致难以跟踪错误。工作非常完美@PravaGoopro高兴地帮助:)您可以将其视为已接受的答案(Green Tik:)是否有理由不使用该方法在<代码>通过引用< <代码> >下面显示?谢谢@PlayHardGoPro通过引用传递有可能无意中修改原始数组的其他内容(我们不希望这样)@MadhurBhaiya在这两种情况下,您都会修改数组的原始内容。这只是稍微安全一点,因为执行循环后仍保留引用,这可能导致难以跟踪错误。是否有理由使用引用
而不是Madhur提供的示例?这是良好实践
还是与性能相关的东西?如果您使用copy(如Madhur的回答),您将在每个循环上创建新对象,即使您不使用它们。所以,是的,使用副本而不是引用是一个性能问题,即使您只是从数组中读取数据是否有理由使用参考
而不是Madhur提供的示例?这是良好实践
还是与性能相关的东西?如果您使用copy(如Madhur的回答),您将在每个循环上创建新对象,即使您不使用它们。所以,是的,使用副本而不是引用是一个性能问题,即使您只是从数组中读取数据