删除阵列中的重复项

时间:2019-11-12 01:35:40

标签: php arrays

我正在尝试从数组中删除重复的值,下面的数组是我需要修改的:

Array
(
[0] => Array
    (
        [brand] => Array
            (
                [milestone] => Milestone
            )
    )

[1] => Array
    (
        [brand] => Array
            (
                [axis] => Axis
                [milestone] => Milestone
            )
    )

[2] => Array
    (
        [brand] => Array
            (
                [axis] => Axis
            )
    )

)

最终结果应该是这样:

Array
(
[0] => Array
    (
        [axis] => Axis
    )
[1] => Array
    (
        [milestone] => Milestone
    )
)

这是我目前所拥有的,但是它不起作用。

foreach( $out_product_brands as $p_brands )
{
    foreach( $p_brands as $brands )
    {
        $brand[] = $brands;
    }
}
print_r($brand);

请给我一些帮助。

1 个答案:

答案 0 :(得分:1)

如果要删除重复的密钥,这是您需要的代码:

$allKeys = [];
$result = [];

foreach($brand as $index => $rec) {
    $newRec = []
    foreach($rec['brand'] as $key => $val) {
        if(!isset($allKeys[$key])) {
            $newRec[$key] = $val;
            $allKeys[$key] = $val;
        }
    }
    if(count($newRec)) {
        $result[] = $newRec;
    }
}

如果只想删除重复的值,这会更加复杂,则需要指定逻辑-如何处理具有不同值的重复键。

相关问题