А вся проблема в том, что ты не понимаешь, что делает "твой" код.
И следовательно, не можешь его отлаживать.
Это к вопросу о том, как легко и приятно быть программистом, когда код за тебя пишут другие.
Ну вот оно тебе и прилетело в обраточку, это "приятно"
Исходная задача алгоритмически примитивная
И чтобы её не решить, надо совсем уж не годиться в программисты.
Поэтому тебе надо сейчас либо собраться и решить задачу
самостоятельно, продумав алгоритм и реализовав его простыми средствами - циклами и условными переходами. Без всяких красивых слов типа array_diff, array_filter и прочих.
Потому что использовать синтаксический сахар можно только тогда, когда ты понимаешь, как он работает внутри. Если не понимаешь - то код надо писать руками, а не волшебными функциями.
И после этого, понимая как работает твой код, ты сможешь заняться отладкой,
запуская его, и выводя промежуточные результаты.
Либо, если не выйдет, то продать компьютер и идти работать в макдональдс.
А вот это вот как у тебя сейчас - "ой мне один добрый дядя написал кодик, но он ниработаит, давайте другой добрый дядя мне его починит" - это не будет работать. Два раза тебе помогут, но постоянно жить чужим трудом не получится. А "программист", который не умеет писать код сложнее уровня "вайл муэскуэль фетч эррей" никому не нужен.
что такое array_filter? Это реализация примитивного цикла,
foreach ($array as $key => $value) {
if (!условие фильтра) {
unset($array[$key]);
}
}
что такое array_diff? Это реализация чуть более сложного алгоритма, когда мы перебираем первый массив, и смотрим, есть ли такой же элемент во втором. Если нет - то записываем это значение в третий.
И так далее.