在数组中查找某个键的重复值

时间:2018-05-07 14:37:18

标签: php arrays duplicates

我有一个数组:

Array
(
    [0] => Array
        (
            [sku_code_part_id] => 1
            [part_label] => blue
            [part_value] => BLU
        )

    [1] => Array
        (
            [sku_code_part_id] => 2
            [part_label] => Orange
            [part_value] => ORG
        )

    [2] => Array
        (
            [sku_code_part_id] => 3
            [part_label] => Orange
            [part_value] => ORG
        )

    [3] => Array
        (
            [sku_code_part_id] => 4
            [part_label] => Orange
            [part_value] => ORG
        )

    [4] => Array
        (
            [sku_code_part_id] => 5
            [part_label] => Green
            [part_value] => GRE
        )

    [5] => Array
        (
            [sku_code_part_id] => 6
            [part_label] => Red
            [part_value] => RED
        )

)

我想要一个简单的方法来检查数组$ this-> request-> post ['custom_parts']以获取分配给part_value键的任何重复值。

所以我可以标记一个'ORG'重复多次的错误。

我尝试了各种方法,例如删除重复和比较之前和之后。但是我遇到了很多问题。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用“array_key_exists”

enter image description here

答案 1 :(得分:0)

您可能想要编写一个函数,但这是一个使用foreach的解决方案。

$part_values = [];
$part_values_duplicates = [];
foreach($this->request->post['custom_parts'] as $customPart){
    if(!in_array($customPart['part_value'], $part_values)){
        $part_values[] = $customPart['part_value'];
    }
    else {
        $part_values_duplicates[] = $customPart['part_value'];
    }
}
var_dump($part_values_duplicates);