首页 > 解决方案 > 为什么 array_push() 会“加深”数组的深度?

问题描述

我有一个二维数组,我们称它为 BASE。现在我想用 foreach 循环遍历这个数组,每次都将当前选择的数组推入一个新数组。

foreach($BASE as $array){
$newarray = [];
array_push($newarray, $array);
$newarraylength = count($newarray[0])
//some more code 
}

这样,我想完成能够在嵌套在这个 foreach 循环内的 for 循环内迭代推送的数组,就像这样

for(index = 0; index < $newarraylength; $index++){
newarray[0][index]
}

但是,当从 BASE 数组中推入新数组时,这个新数组由于某种原因变成了三维的 Oo 因此,上面的语法不起作用。

所以,请你们中的任何一个人告诉我如何处理循环遍历这个三维数组。因为我的头脑无法找到解决方案。或者有人请告诉我如何在不创建 3 维数组的情况下将 1 维数组推入另一个 1 维仍然为空的数组。

标签: php

解决方案


我相信你想做的是:

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')
  )
);

推荐阅读