2013-02-22 4 views
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 
     ) 
) 

Или, может быть, проще выполнить другую функцию, если этот массив уже существует, просто удалите некоторые значения для вывода нового массива?

Спасибо!

ответ

1

ПопробуйтеФункция 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); 
?>

Приветствия.

+0

Я обновил свой ответ, пожалуйста, взгляните, я также проверил его. –

+0

Спасибо! оно работает! – hellomello

+1

всегда приветствую ... –