PHP Удалить дубликаты из многомерного массива на основе ключа - PullRequest
4 голосов
/ 11 апреля 2011

У меня есть многомерный массив ($ array), в котором записи выглядят следующим образом:

{ ["upload/example.gif"]=> array(5) { 
     ["title"]=> string(12) "This is me" 
     ["excerpt"]=> string(24) "This is a photo of a tree" 
     ["img"]=> string(42) "upload/example.gif"
     ["link"]=> string(23) "http://www.google.co.uk" 
     ["source"]=> string(6) "custom" 
   }
}

Мне нужно иметь возможность удалить любые дублирующиеся значения в $array на основе ключа.Поэтому, если бы мой массив был:

$array = array( ["upload/example.gif"] => etc....
                ["upload/tree.gif"] => etc....
                ["upload/example.gif"] => etc....)

, я мог бы удалить один из ["upload/example.gif"] => etc.... массивов.

Я пытался:

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

, но этоне работал

Заранее спасибо.

1 Ответ

0 голосов
/ 12 апреля 2011

netcoder ответил на вопрос правильно, я просто хотел, чтобы он отображался в поле ответа (вместо комментария).

Вы не можете иметь дубликаты ключей в ассоциативном массиве (или любом другом массиве). По своей природе это массив, вы можете иметь уникальные ключи.

Кстати, если вы обнаружите дублирующиеся данные в разных ключах, вы можете удалить избыточный ключ, сняв его.

unset($array['delete_me']);

http://php.net/manual/en/function.unset.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...