在 php 中删除 SKU 的重复值

问题描述 投票:0回答:1

我有一个数组。我想以系统的方式创建一个 Excel 以用于其他目的。

下面是我的数组:

$data = [
0 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/shop/CR3297RC_1.jpeg"
  "label" => "shopify"
]
1 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/shop/CR3297RC_2.jpeg"
  "label" => "shopify"
]
2 => array:3 [
"sku" => "CR3297RC-S"
"url" => "htt://www.abc/dev/shop/CR3297RC_3.jpeg"
"label" => "shopify"
]
3 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/shop/CR3297RC_4.jpg"
  "label" => "shopify"
]
4 => array:3 [
   "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/shop/CR3297RC_Swatch.png"
  "label" => ""
]
5 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/wal/CR3297RC_1.jpeg"
  "label" => "amazon"
]
6 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/wal/CR3297RC_2.jpeg"
  "label" => "amazon"
]
7 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/wal/CR3297RC_3.jpeg"
  "label" => "amazon"
]
8 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/wal/CR3297RC_4.jpg"
  "label" => "amazon"
]
9 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/wal/CR3297RC_Swatch.png"
  "label" => ""
]
10 => array:3 [
  "sku" => "CR3297RC-M"
  "url" => "htt://www.abc/dev/shop/CR3297RC_1.jpeg"
  "label" => "shopify"
]
11 => array:3 [
  "sku" => "CR3297RC-M"
  "url" => "htt://www.abc/dev/shop/CR3297RC_2.jpeg"
  "label" => "shopify"
]
12 => array:3 [
  "sku" => "CR3297RC-M"
  "url" => "htt://www.abc/dev/shop/CR3297RC_3.jpeg"
  "label" => "shopify"
]
13 => array:3 [
  "sku" => "CR3297RC-M"
  "url" => "htt://www.abc/dev/shop/CR3297RC_4.jpg"
 "label" => "shopify"
]
14 => array:3 [
 "sku" => "CR3297RC-M"
 "url" => "htt://www.abc/dev/shop/CR3297RC_Swatch.png"
 "label" => ""
]
15 => array:3 [
 "sku" => "CR3297RC-M"
 "url" => "htt://www.abc/dev/wal/CR3297RC_1.jpeg"
 "label" => "amazon"
]
16 => array:3 [
 "sku" => "CR3297RC-M"
 "url" => "htt://www.abc/dev/wal/CR3297RC_2.jpeg"
 "label" => "amazon"
]
17 => array:3 [
 "sku" => "CR3297RC-M"
 "url" => "htt://www.abc/dev/wal/CR3297RC_3.jpeg"
 "label" => "amazon"
]
18 => array:3 [
 "sku" => "CR3297RC-M"
 "url" => "htt://www.abc/dev/wal/CR3297RC_4.jpg"
 "label" => "amazon"
]
19 => array:3 [
"sku" => "CR3297RC-M"
"url" => "htt://www.abc/dev/wal/CR3297RC_Swatch.png"
"label" => ""
]
20 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/shop/CR3297RC_1.jpeg"
 "label" => "shopify"
]
21 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/shop/CR3297RC_2.jpeg"
 "label" => "shopify"
]
22 => array:3 [
 "sku" => "CR3297RC-L"
  "url" => "htt://www.abc/dev/shop/CR3297RC_3.jpeg"
 "label" => "shopify"
]
23 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/shop/CR3297RC_4.jpg"
 "label" => "shopify"
]
24 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/wal/CR3297RC_Swatch.png"
 "label" => ""
]
25 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/wal/CR3297RC_1.jpeg"
 "label" => "amazon"
]
26 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/wal/CR3297RC_2.jpeg"
 "label" => "amazon"
]
27 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/wal/CR3297RC_3.jpeg"
 "label" => "amazon"
]
28 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/wal/CR3297RC_4.jpg"
 "label" => "amazon"
]
29 => array:3 [
 "sku" => "CR3297RC-L"
 "url" => "htt://www.abc/dev/wal/CR3297RC_Swatch.png"
 "label" => ""
]
38 => array:3 [
 "sku" => "CR3297RC-XL"
 "url" => "htt://www.abc/dev/shop/CR3297RC_1.jpeg"
 "label" => "shopify"
]

 ...
]

上面是我的数组。现在,如果看到键 4 和 9,它们就有带字符串的图像。 我想为每个即将到来的 SKU 做一个记录,但在最后。 现在我想要一个 SKU Ex.CR3297RC-S 使该 SKU 的 SWATCH 图像只在最后一次出现。 就像删除键 4 并且每个即将到来的 SKU 只有键 9。

喜欢下面:

 $data = [
 0 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/shop/CR3297RC_1.jpeg"
  "label" => "shopify"
]
1 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/shop/CR3297RC_2.jpeg"
  "label" => "shopify"
]
2 => array:3 [
  "sku" => "CR3297RC-S"
  "url" => "htt://www.abc/dev/shop/CR3297RC_3.jpeg"
  "label" => "shopify"
]
3 => array:3 [
 "sku" => "CR3297RC-S"
 "url" => "htt://www.abc/dev/shop/CR3297RC_4.jpg"
 "label" => "shopify"
]
4 => array:3 [
 "sku" => "CR3297RC-S"
 "url" => "htt://www.abc/dev/wal/CR3297RC_1.jpeg"
 "label" => "amazon"
]
5 => array:3 [
 "sku" => "CR3297RC-S"
 "url" => "htt://www.abc/dev/wal/CR3297RC_2.jpeg"
 "label" => "amazon"
]
6 => array:3 [
 "sku" => "CR3297RC-S"
 "url" => "htt://www.abc/dev/wal/CR3297RC_3.jpeg"
 "label" => "amazon"
]
7 => array:3 [
 "sku" => "CR3297RC-S"
 "url" => "htt://www.abc/dev/wal/CR3297RC_4.jpg"
 "label" => "amazon"
]
8 => array:3 [
 "sku" => "CR3297RC-S"
 "url" => "htt://www.abc/dev/wal/CR3297RC_Swatch.png"
 "label" => ""
]
...
]
php
1个回答
0
投票

要在 PHP 中检测数组变量中的重复项,可以使用 array_count_values 函数。此函数计算数组中值的出现次数并返回一个关联数组,其中键是原始数组中的值,值是计数。

举个例子:

$array = array(1, 2, 3, 4, 4, 5, 5, 5);
$counted = array_count_values($array);
$duplicates = array();

foreach ($counted as $key => $value) {
    if ($value > 1) {
        $denter code hereuplicates[] = $key;
    }
}

if (count($duplicates) > 0) {
    echo "Duplicates found: " . implode(', ', $duplicates);
} else {
    echo "No duplicates found.";
}

在这个例子中,我们有一个包含一些重复值的数组 $array。我们使用 array_count_values 来计算数组中每个值的出现次数,并将结果存储在 $counted 中。然后我们遍历 $counted 并检查是否有任何值大于 1(表示重复)。如果是这样,我们将相应的键(原始值)添加到 $duplicates 数组中。最后,我们检查 $duplicates 是否非空,如果是,则输出重复项。

© www.soinside.com 2019 - 2024. All rights reserved.