【问题标题】:How to get the duplicate sku data from below pattern如何从以下模式获取重复的 sku 数据
【发布时间】:2018-12-30 01:43:19
【问题描述】:

这是数组的模式。 sku 在 vaiants(子数组)中。我想在 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'
            ]
        ]
    ]
];

【问题讨论】:

  • 你能修复你的阵列吗?它有很多错误,我无法让它运行!

标签: php arrays arraylist multidimensional-array


【解决方案1】:

我很确定这段代码会起作用,但由于您在此处发布的数组中有太多错误,我无法对其进行测试,甚至无法全部找到。
拼写错误的单词、点而不是逗号等等。

这会循环数组,回显产品标题,然后查找与 array_column 关联的所有 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";
}

Edit 终于修复了你所有的错误,这是代码的运行版本:https://3v4l.org/CBnoL

【讨论】:

  • 感谢您的帮助!!但我想要整个数据(与该 sku 相关的所有内容)。
  • 是的,@Andreas 我已经看到了更新。非常感谢!!
  • 目前我正在尝试一起获取相同的 sku 整个数据。表示具有相同 sku 的前两个数据,依此类推。是否也可以通过php函数。请告诉我
  • 我相信我已经回答了你原来的问题。我很确定你问的是可能的,但我不知道你问的是什么。如果您愿意,可以创建一个新问题。在这里添加相同的问题是不赞成的。如果对您有帮助,请随时接受答案。
  • 好的.. @Andreas,是的,当然你帮助了我......非常感谢!!!!!!!!!!!!
猜你喜欢
  • 2017-05-12
  • 2018-05-26
  • 2018-11-19
  • 2019-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多