【问题标题】:php - create x number of copies of arrayphp - 创建x个数组副本
【发布时间】:2013-12-06 05:15:31
【问题描述】:

我在这里寻找更多指导而不是实际代码。我已经知道如何做到这一点;只是想知道是否有更好的方法。

我有一个变量$x,它是一个整数。可以是任何数字。我有一个数组,$items

$items = Array('qty'=>3, 'name'=>'pizza');

我想创建$items$x 副本,每个副本都将成为名为@9​​87654328@ 的新数组的“子数组”。

我知道我可以像这样做一个 for 循环:

for($i=1;$1<=$x,$i++) {
   $newItems[$x] = $items;
}

有没有更好的方法来做到这一点? (这个例子被简化了,所以如果它只是这样,做循环不会有问题。但实际上,我有一个名为$menu 的父数组有多个$menu_items 节点,所以我已经在做一个foreach($menu_items as $id-&gt;$items),然后需要将上面的循环嵌套在其中。如果有一些我不知道在哪里可以说“制作这个数组的$x副本”的函数会很好。

【问题讨论】:

  • array_fill(或array_fill_keys)可能会有所帮助。
  • $newItems = array_fill(0, $x, $items);`
  • 为什么需要这个数组的副本?
  • 第二个参数可以是任何东西(可能是资源除外,我从未尝试过使用资源) - 标量、数组、对象,甚至是对象或函数的嵌套数组
  • 哎呀,没关系。我正在查看@RocketHazmat 最初提到的array_fill_keys 的文档。我看到 array_fill 确实需要三个参数。

标签: php arrays for-loop clone


【解决方案1】:

使用array_fill()

$newItems = array_fill(0, $x, $items);

【讨论】:

    猜你喜欢
    • 2011-01-27
    • 2018-11-30
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多