【发布时间】:2013-12-06 05:15:31
【问题描述】:
我在这里寻找更多指导而不是实际代码。我已经知道如何做到这一点;只是想知道是否有更好的方法。
我有一个变量$x,它是一个整数。可以是任何数字。我有一个数组,$items。
$items = Array('qty'=>3, 'name'=>'pizza');
我想创建$items 的$x 副本,每个副本都将成为名为@987654328@ 的新数组的“子数组”。
我知道我可以像这样做一个 for 循环:
for($i=1;$1<=$x,$i++) {
$newItems[$x] = $items;
}
有没有更好的方法来做到这一点? (这个例子被简化了,所以如果它只是这样,做循环不会有问题。但实际上,我有一个名为$menu 的父数组有多个$menu_items 节点,所以我已经在做一个foreach($menu_items as $id->$items),然后需要将上面的循环嵌套在其中。如果有一些我不知道在哪里可以说“制作这个数组的$x副本”的函数会很好。
【问题讨论】:
-
array_fill(或array_fill_keys)可能会有所帮助。 -
$newItems = array_fill(0, $x, $items);`
-
为什么需要这个数组的副本?
-
第二个参数可以是任何东西(可能是资源除外,我从未尝试过使用资源) - 标量、数组、对象,甚至是对象或函数的嵌套数组
-
哎呀,没关系。我正在查看@RocketHazmat 最初提到的array_fill_keys 的文档。我看到 array_fill 确实需要三个参数。