【问题标题】:How to push $variable into multidimensional array php? [duplicate]如何将 $variable 推入多维数组 php? [复制]
【发布时间】:2019-12-11 05:14:22
【问题描述】:

如何将变量推入多维数组 php? 当我为拖曳数组提供密钥时它起作用了,但是当我删除键时它不起作用: 我的意思是:

$array1= array('x'=>array('id'=>7,'code'=>4444),'y'=>array('id'=>8,'code'=>3333 ));
哪里
array_push($array1['x'],$newdata); 

我不想生成 x,y ... ,我想让它自动生成。

我想要这样的结果:

Array
(
    [0] => Array
        (
            [id] => 7
            [code] => 4444
            [newData] => 1111
        )

    [1] => Array
        (
            [id] => 8
            [code] => 3333
            [newData] => 1111
        )

)

这是我尝试过的:

<?php
$array1= array(array('id'=>7,'code'=>4444),array('id'=>8,'code'=>3333));
$newdata = 1111;
foreach ($array1 as $item ){
    array_push($item,$newdata);
}
print_r($array1);

【问题讨论】:

  • 在 foreach 循环中使用对 $item 的引用。 (foreach($array1 as &amp;$item)

标签: php arrays multidimensional-array push


【解决方案1】:

您需要能够以正确的方式更新原始数组。首先更新原始数据(以这种方式)使用&amp;$item。其次,使用正确的密钥添加项目,而不是仅使用 array_push() - array_push() 将使用 0 的密钥添加它(在这种情况下)...

foreach ($array1 as &$item ){
    $item['newData'] = $newdata;
}

给出输出...

Array
(
    [0] => Array
        (
            [id] => 7
            [code] => 4444
            [newData] => 1111
        )

    [1] => Array
        (
            [id] => 8
            [code] => 3333
            [newData] => 1111
        )

)

或者使用原始数组并在 foreach 中获取键...

foreach ($array1 as $key => $item ){
    $array1[$key]["newData"] = $newdata;
}

【讨论】:

  • 非常感谢。那正是我想要的。谢谢
【解决方案2】:

我认为您不需要使用推送。当for循环我们需要在$前使用&符号来引用item变量

$array1= array(array('id'=>7,'code'=>4444),array('id'=>8,'code'=>3333));
$newdata = 1111;
foreach ($array1 as &$item ){
    $item["newData"] = $newdata;
}
print_r($array1);

就这样吧。

【讨论】:

  • 非常感谢。那正是我想要的。谢谢兄弟
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
  • 2016-08-14
  • 1970-01-01
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
相关资源
最近更新 更多