如何删除重复的数组?

时间:2014-11-24 16:25:58

标签: php arrays

如何删除重复的数组?它与数组唯一不同,因为它会删除数组中的重复值..

我得到一个像这样的数组列表

1. array('item' => 6, 'quantity' => 1, 'price' => 120)
2. array('item' => 6, 'quantity' => 1, 'price' => 120)
3. array('item' => 6, 'quantity' => 1, 'price' => 120)
4. array('item' => 22, 'quantity' => 8, 'price' => 30)
5. array('item' => 22, 'quantity' => 8, 'price' => 30)

如何在保持价值的同时做到这一点?

3. array('item' => 6, 'quantity' => 1, 'price' => 120)
4. array('item' => 22, 'quantity' => 8, 'price' => 30)

$get = file_get_contents('URL');    
$json = json_decode($get, true);    
$results = print_r($json);    
file_put_contents('file.json', print_r($json, true), FILE_APPEND);

2 个答案:

答案 0 :(得分:1)

这应该适合你:

$unique = array_map("unserialize", array_unique(array_map("serialize", $array)));

以此为例:

<?php

    $array = array(
                array('item' => 6, 'quantity' => 1, 'price' => 120),
                array('item' => 6, 'quantity' => 1, 'price' => 120),
                array('item' => 6, 'quantity' => 1, 'price' => 120),
                array('item' => 22, 'quantity' => 8, 'price' => 30),
                array('item' => 22, 'quantity' => 8, 'price' => 30)
            );

    $unique = array_map("unserialize", array_unique(array_map("serialize", $array)));

    echo "<pre>";
    print_r($unique);

?>

输出:

Array
(
    [0] => Array
        (
            [item] => 6
            [quantity] => 1
            [price] => 120
        )

    [3] => Array
        (
            [item] => 22
            [quantity] => 8
            [price] => 30
        )

)

答案 1 :(得分:0)

你也可以尝试这种方式:

if(serialize($a1) == serialize($a2))

您可以序列化数组然后进行比较。