Пересечение 2 массивов, даже если с ошибками

$a = array('apple', 'banana', 'orange'); //etc...
$b = array('papel', 'abanan', 'grape');  //etc...

Выход должен быть 'apple', 'banana'….. Вам нужно использовать некоторые встроенные методы массива.

Во втором массиве обратите внимание, что слова «яблоко» и «банан» пишутся неправильно. Слова «papel», «abanan» также могут быть похожи на «leppa», «nnaab» или любой другой формат, но он должен содержать все буквенные символы соответствующего слова.

-1

Решение

Итак, вы говорите «уникальный», что подразумевает разница но твой пример показывает пересечение. Если вам нужно наоборот array_udiff() вместо:

$result = array_uintersect($a, $b,  function($a, $b) {
$a = str_split($a);
$b = str_split($b);
sort($a);
sort($b);
implode($a);
implode($b);

if($a == $b) {
return 0;
} elseif ($a > $b) {
return 1;
} else {
return -1;
}
});
  • разбить строки на массивы
  • сортировать массивы
  • взорваться обратно в струны
  • сравнивает строки
  • называя это через array_uintersect() возвращает элементы в $a которые находятся в $b

Урожайность:

Array
(
[0] => apple
[1] => banana
)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]