2015-02-25 3 views
0

У меня есть многомерный массив как этотУдалить повторяющееся значение в многомерных массивах

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [url] => http://www.youtube.com/watch?v=eJOiKuVeXA0 
        [title] => Title 
       ) 

     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [url] => https://www.youtube.com/watch?v=KhF2R0m0N6I 
        [title] => Demo video Name 
       ) 

      [1] => Array 
       (
        [url] => https://www.youtube.com/watch?v=oB1CUxX1JJE 
        [title] => second video 
       ) 

     ) 

    [2] => Array 
     (
      [0] => Array 
       (
        [url] => https://www.youtube.com/watch?v=-D7VOPdAQfg 
        [title] => Title 
       ) 

     ) 

    [3] => Array 
     (
      [0] => Array 
       (
        [url] => http://www.youtube.com/watch?v=eJOiKuVeXA0 
        [title] => Title 
       ) 

     ) 

    [4] => Array 
     (
      [0] => Array 
       (
        [url] => https://www.youtube.com/watch?v=xAx2gc-zqzg&feature=player_detailpage 
        [title] => Title 
       ) 

     ) 

    [8] => Array 
     (
      [0] => Array 
       (
        [url] => https://www.youtube.com/watch?v=FVpmjX1DjmI 
        [title] => Title 
       ) 

     ) 

    [10] => Array 
     (
      [0] => Array 
       (
        [url] => http://www.youtube.com/watch?v=eJOiKuVeXA0 
        [title] => one 
       ) 

     ) 

    [12] => Array 
     (
      [0] => Array 
       (
        [url] => http://www.youtube.com/watch?v=eJOiKuVeXA0 
        [title] => Title 
       ) 

      [1] => Array 
       (
        [url] => https://www.youtube.com/watch?v=-D7VOPdAQfg 
        [title] => Title 
       ) 

     ) 

    [14] => Array 
     (
      [0] => Array 
       (
        [url] => http://www.youtube.com/watch?v=eJOiKuVeXA0 
        [title] => Title 
       ) 

      [1] => Array 
       (
        [url] => https://www.youtube.com/watch?v=-D7VOPdAQfg 
        [title] => Title 
       ) 

     ) 

) 

Я не в состоянии удалить несколько URL ЗНАЧЕНИЯ Хочет удалить значения Повторяющегося URL ... Как удалить дубликаты многомерного массива?

+0

Вы пытались http://php.net/manual/fr/function.array-unique.php? –

+0

Дубликат http://stackoverflow.com/questions/307674/how-to-remove-duplicate-values-from-a-multi-dimensional-array-in-php – GluePear

ответ

0

Я думаю, вам нужна эта функция:

function super_unique($array) 
    { 
     $result = array_map("unserialize", array_unique(array_map("serialize", $array))); 

     foreach ($result as $key => $value) 
     { 
     if (is_array($value)) 
     { 
      $result[$key] = super_unique($value); 
     } 
     } 

     return $result; 
    } 

    $a = array(array('foo', 'bar'), array('foo', 'bar'), array('foo', 'bar_foo')); 

    print_r(super_unique($a)); 

результат:

Array 
(
    [0] => Array 
     (
      [0] => foo 
      [1] => bar 
     ) 

    [2] => Array 
     (
      [0] => foo 
      [1] => bar_foo 
     ) 

) 
-1

Поскольку массив является многомерным вам нужно перебрать пунктов, а также сохранить список которых URL видео у вас есть и создать новый массив, содержащий только уникальные элементы, например:

$unique_video_urls = array(); 
foreach($array as $id => $subarray) { 
    foreach($subarray as $video) { 
     if(!in_array($video['url'], $unique_video_urls)) { 
      $unique_video_urls[] = $video['url']; 
      $new_array[$id][] = $video; 
     } 
    } 
} 

$ array is ваш исходный массив.

В этом примере $ new_array должен выглядеть как ваш исходный массив, но содержит только уникальные элементы. Клавиши массива из исходного массива были сохранены, если они имеют для вас какое-то значение?

Надеюсь, это отправная точка для обработки массива по мере необходимости.

Смежные вопросы