Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从下面的模式中获取重复的sku数据_Php_Arrays_Arraylist_Multidimensional Array - Fatal编程技术网

Php 如何从下面的模式中获取重复的sku数据

Php 如何从下面的模式中获取重复的sku数据,php,arrays,arraylist,multidimensional-array,Php,Arrays,Arraylist,Multidimensional Array,这是数组的模式。sku在vaiantssub数组中。我想根据sku获取数据。如果相同的sku位于同一个阵列中,则输出应仅为该sku。如果相同的sku位于不同的根阵列中,则输出应为阵列数据。如何动态执行此操作 $arr = [ '0' =>[ "title" => 'first product', 'prpduct_id'=>23424, 'variants'=>[ 0=>[ 'v

这是数组的模式。sku在vaiantssub数组中。我想根据sku获取数据。如果相同的sku位于同一个阵列中,则输出应仅为该sku。如果相同的sku位于不同的根阵列中,则输出应为阵列数据。如何动态执行此操作

    $arr = [
    '0' =>[
    "title" => 'first product',
    'prpduct_id'=>23424,
    'variants'=>[
        0=>[
                'variant_id'=>8654,
                'title'=> 'small prouct',
                'sku'=>'pro001'
            ],
        1=>[
                'variant_id'=>6556,
                'title'=>'second small product',
                'sku'=>'pro002'
            ],
        2=>[
                'variant_id'=>63258,
                'title'=>'third small product',
                'sku'=>'pro001'
            ]
        ]
    ],
    1=>[
    'title'=>'second product',
    'product_id'=>93255,
    'variants'=>[
        0=>[
                'variant_id'=>63259,
                'title'=>'small box',
                'sku'=>'pro002'
            ],
        1=>[
                'variant_id'=>63259,
                'title'=>'second small box',
                'sku'=>'pro003'
            ]
        ]
    ],
    2=>[
    'title'=>'third product',
    'product_id'=>321456,
    'variants'=>[
        0=>[
                'vaiant_id'=>32695,
                'title'=>'large products',
                'sku'=>'pro003'
            ]
        ]
    ]
];

我很确定这段代码可以正常工作,但由于在这里发布的数组中有太多错误,我无法测试它,我甚至无法找到所有错误。 拼写错误的单词、点而不是逗号等等

这将循环数组,回显产品标题,然后查找与array_列关联的所有SKU,array_unique返回唯一SKU。 然后我用新线内爆数组

foreach($arr as $prod){
    echo $prod['title'] . " SKU's:\n";
    $sku = array_intersect_key($prod['variants'], array_unique(array_column($prod['variants'], 'sku')));
    // $sku is now the array data of the unique SKU's.
    // Echo them how you want, for demo purpose I use var_dump
    Var_dump($sku);
    echo "\n\n";
}

编辑最终修复了所有错误,下面是一个运行版本的代码:

您能修复阵列吗?它的毛病太多了,我跑不动!谢谢你的帮助!!。但是我想要所有与sku相关的数据。是的,@Andreas我已经看到了更新。非常感谢你!!目前,我正在尝试一起获取相同的sku整个数据。指具有相同sku的前两个数据,依此类推。也可以通过php函数实现。请让我知道我相信我已经回答了你原来的问题。我很确定你问的是可能的,但我不知道你问的是什么。如果愿意,您可以创建一个新问题。这里不赞成增加同样的问题。如果答案对你有帮助,请随意接受。好的@安德烈亚斯,是的,你当然帮了我…非常感谢你!!!!!!!!!!!!