在PHP中快速创建大型数组
可能重复:在PHP中快速创建大型数组,php,arrays,loops,multidimensional-array,Php,Arrays,Loops,Multidimensional Array,可能重复: 在基于C的语言中,您可以非常快速地创建一个大型多维数组,该数组可以与算法或其他东西的循环一起使用。像这样: int foo[50][40]; 在PHP中,如何做到这一点?目前,我唯一能想到的是: $bar = array(); for ($a = 0; $a<50; $a++) { for ($b = 0; $b++; $b<40) { $bar[$a][$b] = 0; } } $bar=array(); 对于基于PHP语言的($a
在基于C的语言中,您可以非常快速地创建一个大型多维数组,该数组可以与算法或其他东西的循环一起使用。像这样:
int foo[50][40];
在PHP中,如何做到这一点?目前,我唯一能想到的是:
$bar = array();
for ($a = 0; $a<50; $a++) {
for ($b = 0; $b++; $b<40) {
$bar[$a][$b] = 0;
}
}
$bar=array();
对于基于PHP语言的($a=0;$a),您不需要“保留”创建数组。
但是只要在需要的时候,随时添加所需数量的元素即可
顺便说一句,如果速度不是指简洁的代码,而是指执行的速度,那么PHP肯定是一个错误的选择。在基于PHP的语言中,您不需要“保留”创建数组。
但是只要在需要的时候,随时添加所需数量的元素即可
顺便说一句,如果速度不是指简洁的代码,而是指执行的速度,那么PHP肯定是一个错误的选择。在PHP中,您不必预先定义数组的大小,您可以用数据动态地附加它,如下所示:
$bar = array();
for($i = 0;$i < 50;$i++) {
$bar[] = $i;
}
$bar=array();
对于($i=0;$i<50;$i++){
$bar[]=$i;
}
通过使用[]调用$bar,您将指示应创建一个新的键,在本例中,该键保持值$i。在PHP中,您不必预定义数组的大小,您可以动态地将其附加数据,如下所示:
$bar = array();
for($i = 0;$i < 50;$i++) {
$bar[] = $i;
}
$bar=array();
对于($i=0;$i<50;$i++){
$bar[]=$i;
}
通过使用[]调用$bar,您将指示应创建一个新的键,在本例中保持值$i。请尝试以下操作:
$bar = range(0, 50);
foreach ($bar as $k => $v) {
$bar[$k] = range(0, 40);
};
请尝试以下操作:
$bar = range(0, 50);
foreach ($bar as $k => $v) {
$bar[$k] = range(0, 40);
};
使用将加快速度(并使其占用更少的内存)。使用将加快速度(并使其占用更少的内存)。也许这一项可以帮助:
$b = array_fill(0,50,0);
$a = array_fill(0,50,$b);
//and so on, depending on how many dimensions do you need
也许这个可以帮助:
$b = array_fill(0,50,0);
$a = array_fill(0,50,$b);
//and so on, depending on how many dimensions do you need
这在很多情况下是不实际的,因为你没有按照预定义的顺序访问索引。这在很多情况下是不实际的,因为你没有按照预定义的顺序访问索引。QA已经在他的问题中发布了这个解决方案…@Polity不完全。OP假设数组构造类似于C-way,我只是演示一下事实并非如此。QA已经在他的问题中发布了此解决方案…@Polity不完全如此。OP假设阵列结构与C-way类似,我只是证明它不是。@Polity true-我确实搜索了,但没有寻找正确的东西-投票关闭了!@Polity true-我确实搜索了,没有寻找正确的东西,不是吗hough-已投票关闭!+1用于SplFixedArray…尽管它有其局限性,特别是在创建多维数组时+1用于SplFixedArray…尽管它有其局限性,特别是在创建多维数组时