2014-09-23 111 views
2

您好我一直在努力与一个数组的人口,如果你能帮助它将不胜感激。从另外两个数组中填充for循环的新数组

所以我有这两个数组$start_range[]$end_range[]其中包含 各自的值和两个数组是相同的大小。例如:$start_range[0] = 1000$end_range[0]=[2000]。现在我想用这些数字之间的范围来填充一个新数组,并保留值的各自性,例如$new_array[0] = range($start_range[0],$end_range[0])

在那一刻,我在这里使用此代码

for ($i=0; $i<sizeof($start_range); $i++) { 
    $new_array[] = range($start_range[$i], $end_range[$i]); 
} 

但我的问题是,它产生具有相同数据的阵列,因为它遍历数组的大小。就好像数组的大小是4那么它会生成4个新的完全相同的数组。我无法摆脱循环,因为它仅从两个数组的第一列生成数组。

任何解决方案?

+3

从我的阅读您的描述,它听起来像它的工作完全按照预期,但显然不是这样。你可以从两个输入数组发布一个小样本,以及期望的输出数组是什么样的?如果不是你的代码已经产生了,那么最难理解输出的结构是什么。 – 2014-09-23 19:36:40

+0

@MichaelBerkowski我不能像在我的工作站上那样。我在自己的电脑上重新输入了内存中的代码。我会在明天早上尝试第一件事。我认为它主要是一个错误的地方,但另一方面,它每次循环时都会生成新的数组。 – braumer 2014-09-23 19:48:14

+0

更重要的是,它只是帮助我们看看'$ new_array'应该是什么样的。例如,给定的范围1..3和20..23,你现有的代码会产生'array(array(1,2,3),array(20,21,22,23))',但它听起来像你可能想要的是一个连续的数组像'array(1,2,3,20,21,22,23)'。 – 2014-09-23 20:12:34

回答

0

会这样吗?

$newArray = array(); 
foreach ($startArray as $key => $value) { 
    $newArray[$key] = range($startArray[$key], $endArray[$key]); 
}