Php 为什么数组“u push()”;“加深”;数组的深度?

Php 为什么数组“u push()”;“加深”;数组的深度?,php,Php,我有一个二维数组,我们称之为基。 现在我想用foreach循环迭代这个数组,每次都将当前选择的数组推到一个新数组中 foreach($BASE as $array){ $newarray = []; array_push($newarray, $array); $newarraylength = count($newarray[0]) //some more code } 通过这种方式,我希望能够遍历嵌套在这个foreach循环中的for循环中的push数组,如下所示 for(index =

我有一个二维数组,我们称之为基。 现在我想用foreach循环迭代这个数组,每次都将当前选择的数组推到一个新数组中

foreach($BASE as $array){
$newarray = [];
array_push($newarray, $array);
$newarraylength = count($newarray[0])
//some more code 
}
通过这种方式,我希望能够遍历嵌套在这个foreach循环中的for循环中的push数组,如下所示

for(index = 0; index < $newarraylength; $index++){
newarray[0][index]
}
for(索引=0;索引<$newarraylength;$index++){
newarray[0][index]
}
但是,当基本数组中的数组被推送到新数组中时,这个新数组由于某种原因变成了三维Oo 因此,上面的语法不起作用

你们中的任何一个人,请告诉我如何处理这个三维数组的循环。因为我的脑袋没有找到解决办法。
或者有人告诉我如何在不创建三维数组的情况下,将一维数组推入另一个一维的空数组。

我相信您要做的是:

foreach($BASE as $array){
    $newarray = [];
    array_push($newarray, $array);
    $newarraylength = count($newarray[0])
    //some more code 
}
你所做的就是推动整个二维数组。 因此,如果$BASE为:

array(
   '1' => array('a', 'b'),
   '2' => array('c', 'd')
)
然后将其推到$newarray将导致

$newarray = 
array(
  0 => array(
     '1' => array('a', 'b'),
     '2' => array('c', 'd')
  )
);

你基本上想要实现的是:

foreach($BASE as $array){
    $newarray = [];
    array_push($newarray, $array);
    $newarraylength = count($newarray[0])
    //some more code 
    for(index = 0; index < $newarraylength; $index++){
          //your code with newarray[0][index] here
    }
}

请记住,第一种方法仅适用于非关联数组…

您正在推送$BASE而不是$array…如果您只想复制数组,则不需要循环<代码>$newarray=$BASE应该可以正常工作。如果需要重置键,可以使用
array\u值
foreach($BASE as $array){

    foreach($array as $key=>$value){

    }
}