0

我想知道消除数组中重复项的最佳方法是什么?目前我正在通过一个 foreach 循环来实际获取这个数组,有没有办法说,如果id已经存在,不要插入到数组中?

foreach($categories2Sugg as $Category2Sugg)
{

    $category_stringArray2Sugg[] = array("id"=>$Category2Sugg->id,"name"=>$Category2Sugg->name,"pluralName"=>$Category2Sugg->pluralName,"shortName"=>$Category2Sugg->shortName);      

}


Array
(
    [0] => Array
        (
            [id] => 4bf58dd8d48988d16c941735
            [name] => Burger Joint
            [pluralName] => Burger Joints
            [shortName] => Burgers
        )

    [1] => Array
        (
            [id] => 4bf58dd8d48988d16c941735
            [name] => Burger Joint
            [pluralName] => Burger Joints
            [shortName] => Burgers
        )

    [2] => Array
        (
            [id] => 4bf58dd8d48988d16c941735
            [name] => Burger Joint
            [pluralName] => Burger Joints
            [shortName] => Burgers
        )

    [3] => Array
        (
            [id] => 4bf58dd8d48988d14e941735
            [name] => American Restaurant
            [pluralName] => American Restaurants
            [shortName] => American
        )
)

或者如果这个数组已经存在,做另一个函数可能更容易,只需删除一些值以输出一个新数组?

谢谢!

4

1 回答 1

1

尝试array_unique php 函数,这将有所帮助。

也试试

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

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

上面的代码经过测试。

完整的测试代码

<?php
$array = array
(
    '0' => array
    (
        'id' => '4bf58dd8d48988d16c941735',
        'name' => 'Burger Joint',
        'pluralName' => 'Burger Joints',
        'shortName' => 'Burgers'
    ),
    '1' => array
    (
        'id' => '4bf58dd8d48988d16c941735',
        'name' => 'Burger Joint',
        'pluralName' => 'Burger Joints',
        'shortName' => 'Burgers'
    ),
    '2' => array
    (
        'id' => '4bf58dd8d48988d16c941735',
        'name' => 'Burger Joint',
        'pluralName' => 'Burger Joints',
        'shortName' => 'Burgers'
    ),
    '3' => array
    (
        'id' => '4bf58dd8d48988d14e941735',
        'name' => 'American Restaurant',
        'pluralName' => 'American Restaurants',
        'shortName' => 'American'
    )
);

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

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

干杯。

于 2013-02-22T03:53:16.123 回答