在PHP中初始化大量多维数组的最有效方法是什么?
示例:我将创建100个如下所示的多维数组:
Array
(
[1] => Array
(
[multi] => 1
)
[2] => Array
(
[multi] => 2
)
[3] => Array
(
[multi] => 3
)
[4] => Array
(
[multi] => 4
)
[5] => Array
(
[multi] => 5
)
.......
)
当前,我正在使用以下代码创建上面显示的数组:
// 100 arrays
for($i=1; $i<=100; $i++){
$array[$i]['multi']=$i;
}
我还发现了使用array_fill()
和array_fill_keys()
的另一种方法,但是它只允许在数组中初始化相同的值:
$array = array_fill(1, 100, array_fill_keys(array("multi"), "value_here"));
问题:在速度方面,有没有更有效的方法来初始化这种数组?
答案 0 :(得分:1)
您可以在所需的值范围内使用array_map
:
$array = array_map(function ($v) { return array('multi' => $v); }, range(0, 5));
print_r($array);
输出:
Array
(
[0] => Array
(
[multi] => 0
)
[1] => Array
(
[multi] => 1
)
[2] => Array
(
[multi] => 2
)
[3] => Array
(
[multi] => 3
)
[4] => Array
(
[multi] => 4
)
[5] => Array
(
[multi] => 5
)
)
如果您不想使用0
元素,只需unset($array[0]);