Как удалить из массива пары повторяющихся символов (зеркальных в том числе)? (PHP)

Например, есть массив $arr = {"ia", "ai", "go", "og", "og", "cr", "og", "rc"}

Как получить массив $arr = {"ia", "go", "cr"} ?


Ответы (2 шт):

Автор решения: Алексей Шиманский
  • к массиву применяем метод array_map, где для каждого элемента применяем действия:

    $stringParts = str_split($item);
    sort($stringParts);
    return implode($stringParts); 
    

    Это чтобы отсортировать символы в строке по алфавиту.

  • Затем к массиву необходимо применить к массиву метод array_unique

→ Ссылка
Автор решения: Jean-Claude

Грунди постоянно использует array_reduce(), попробовал сваять на нем:

$arr = ["ia", "ai", "go", "og", "og", "cr", "og", "rc"];

$new = array_reduce($arr, function ($acc, $item) {

    if (!in_array($item, $acc) && !in_array(strrev($item), $acc)) {
        array_push($acc, $item);
    }

    return $acc;

}, []);

print_r($new);
//Array ( [0] => ia [1] => go [2] => cr ) 

В работе https://3v4l.org/SYgPk

→ Ссылка