Как удалить два одинаковых элемента массива?

Есть массив:
Array
(
    [0] => Array
        (
            [e-fragnet] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299129-e-fragnet-hellraisers-global-offensive-champions-league-season-2
        )

    [1] => Array
        (
            [hellraisers] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299129-e-fragnet-hellraisers-global-offensive-champions-league-season-2
        )

    [2] => Array
        (
            [e-fragnet] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299129-e-fragnet-hellraisers-global-offensive-champions-league-season-2
        )

    [3] => Array
        (
            [hellraisers] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299129-e-fragnet-hellraisers-global-offensive-champions-league-season-2
        )

    [4] => Array
        (
            [envyus] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299130-envyus-csgl-sl-i-league-starseries-xiv
        )

    [5] => Array
        (
            [virtuspro] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299123-virtuspro-mousesports-cevo-professional-season-8-finals
        )

    [6] => Array
        (
            [mousesports] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299123-virtuspro-mousesports-cevo-professional-season-8-finals
        )

    [7] => Array
        (
            [virtuspro] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299123-virtuspro-mousesports-cevo-professional-season-8-finals
        )

    [8] => Array
        (
            [mousesports] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299123-virtuspro-mousesports-cevo-professional-season-8-finals
        )

    [9] => Array
        (
            [mousesports] => http://mini.s-shot.ru/1024x2600/2048/png/?http://www.hltv.org/match/2299122-mousesports-conquest-cevo-professional-season-8-finals
        )

)

Как можно заметить, в нем повторяются 1 и 3, 5 и 7, а также 6 и 8 элементы. Как можно удалить те элементы, у которых совпадают только ключ и его значение? Пробовал делать это через array_unique, но почему-то в итоге у меня возвращается пустой массив или только один элемент - нулевой[0].
  • Вопрос задан
  • 409 просмотров
Решения вопроса 1
allard
@allard
Серийный программист
php.net/manual/ru/function.array-unique.php
Должно помочь.

Комментарий под постом написал, продублирую код сюда.
$input = []; // ваш массив
$result = [];
foreach($input as $elem)
    $result[serialize($elem)] = $elem;
$result = array_values($result); 
var_dump($result); // то что вам нужно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
function myFilter($inp) {
	$filter = function($carry, $item) {
		if (false === array_search($item, $carry)) $carry[] = $item;
		return $carry;
    };
    return array_reduce($inp, $filter, []);
}

Демо: codepad.viper-7.com/eG8aZL#
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы