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

Try array_unique php function that will help.

Also Try

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

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

Above code is tested.

Complete Tested Code

<?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);
?>

Cheers.

于 2013-02-22T03:53:16.123 に答える