php - 为什么 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 维仍然为空的数组。
解决方案
我相信你想做的是:
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')
)
);
推荐阅读
- reactjs - 将子组件中的动态状态更新推送到父组件
- c++ - 当 Googletest 夹具没有默认构造函数时,如何在它们中定义变量?
- powershell - 无法运行位于远程 Azure VM D 中的远程 powershell 脚本:使用 Invoke-Command 的驱动器
- powershell - 从转换的 json 将成员添加到 pscustomobject 数组集合后无法更新值
- scala - 如何修复“错误:遇到不可恢复的循环解析导入”?
- macos - macOS/SwiftUI:使用 GraphicalDatePickerStyle() 时设置日期选择器的选择颜色/色调?
- kubernetes - 协调依赖对象 k8s 控制器运行时
- asp.net-mvc-5 - 在 ASP.NET MVC 5 中创建商店
- python-3.x - 用 None 替换 NaN 值填充 DataFrame 中前一行的值(pandas 1.0.3)
- javascript - 如何使用 MediaElementJS 和 Youtube 实现 VAST-ad?