Php 如何从下面的模式中获取重复的sku数据
这是数组的模式。sku在vaiantssub数组中。我想根据sku获取数据。如果相同的sku位于同一个阵列中,则输出应仅为该sku。如果相同的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
$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函数实现。请让我知道我相信我已经回答了你原来的问题。我很确定你问的是可能的,但我不知道你问的是什么。如果愿意,您可以创建一个新问题。这里不赞成增加同样的问题。如果答案对你有帮助,请随意接受。好的@安德烈亚斯,是的,你当然帮了我…非常感谢你!!!!!!!!!!!!