Php 复制多维数组

Php 复制多维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我get()一个多维数组,并将其存储在$products变量中 我需要复制该数组以将其创建到新的Webshop中,因为API提供的导出不起作用,因此我创建了此脚本以复制数据: foreach ($products as $id => $product) { $copy = $products[$id]; $createdProducts = $apiSkylux->products->create( array( 'id

get()一个多维数组,并将其存储在$products变量中

我需要复制该数组以将其创建到新的Webshop中,因为API提供的导出不起作用,因此我创建了此脚本以复制数据:

foreach ($products as $id => $product) {

    $copy = $products[$id];
    $createdProducts = $apiSkylux->products->create(
        array(
            'id' => $copy['id'],
            'createdAt' => $copy['createdAt'],
            'updatedAt' => $copy['updatedAt'],
            'isVisible' => $copy['isVisible'],
            'visibility' => $copy['visibility'],
            'data01' => $copy['data01'],
            'data02' => $copy['data02'],
            'data03' => $copy['data03'],
            'url' => $copy['url'],
            'title' => $copy['title'],
            'fulltitle' => $copy['fulltitle'],
            'description' => $copy['description'],
            'content' => $copy['content'],
            'set' => $copy['set'],
            'brand' => $copy['brand'],
            'categories' => $copy['categories'],
            'deliverydate' => $copy['deliverydate'],
            'image' => $copy['image'],
            'images' => $copy['images'],
            'relations' => $copy['relations'],
            'reviews' => $copy['reviews'],
            'type' => $copy['type'],
            'attributes' => $copy['attributes'],
            'supplier' => $copy['supplier'],
            'tags' => $copy['tags'],
            'variants' => $copy['variants'],
            'movements' => $copy['movements'],

        )
    );

}
复印件正在工作。但我想@2016以及所有这些,难道不能用更少的代码行来实现吗

这是我通过第一个数组的
var\u dump
接收到的:

var_dump($products[0]);
    exit;
//result
array(28) {
  ["id"]=>
   int(26136946)
//rest of array
所以我可以看到数组有一个数字(28),这代表什么

我尝试过几次,最近的尝试是:

$copy = $products[$id];
            $createProducts = $products;
            $createdProducts = $apiSkylux->products->create($createProducts);
但是我也得到了一个
错误:无效的数据输入


我是否可以比当前使用的方法更容易地从阵列复制数据?

这没有任何意义。只需在循环中使用
$product
变量即可。完成了

这可以简化为:

$copy
是的,将每个键重新分配到一个新数组与首先使用原始数组是一样的

这可以简化为:

foreach ($products as $product){
    $copy = $product;
显然,您可以完全省略
$copy
,而只使用
$product

底线:

foreach ($products as $product) {
    $createdProducts = $apiSkylux->products->create($product);
}
你如何处理
$createdProducts
我不知道;在循环中,您似乎没有对它做任何操作,因此它最多只能保存循环后的最后一个产品,因此可能是多余的

也许你可以:

array_map([$apiSkylux->products, 'create'], $products);

取决于是否需要返回值

所以我可以看到数组有一个数字(28),这代表什么


这意味着它是一个包含28个元素的数组。

$apiSkylux->products->create($copy)
的作用与将每个键重复到一个新数组中完全相同。。。除此之外,我不确定
create()
在做什么或不做什么,以及为什么首先需要一个“副本”。28表示数组的元素数。@deceze,不敢相信有时我就是看不到,这么简单。我需要一份副本,因为1个网店中的产品需要复制到新的网店进行替换。在您的
foreach
中,而不是
$Copy
使用
$product
@CodeGodie yes!我启动$copy变量是为了减少编写的目的。可以全部减少到$product。谢谢,有时候它很简单,当我忙的时候,我忽略了一些如此简单的事情,这是正常的吗?我真的认为我的问题是正确的,最终它是一个如此简单的解决方案。谢谢你的解释$createdProducts目前没有做任何事情。我只是想复制,复制后我可以调用我在过去的网店做过的相同产品。我可以留下$createdProducts=。。事实上,你的个人资料中的自我评估可能有点乐观-如果你没有使用变量,首先不要创建它。我现在将把它全部减少1级,:(。
foreach ($products as $product) {
    $createdProducts = $apiSkylux->products->create($product);
}
array_map([$apiSkylux->products, 'create'], $products);
$createdProducts = array_map([$apiSkylux->products, 'create'], $products);