Пользователь
$d1 = $s1[$l1 - $i] ?? 0; $d2 = $s2[$l2 - $i] ?? 0;
$o1 = $l1 - $i; $d1 = $o1 >= 0 && $s1[$o1] ? $s1[$o1] : 0; $o2 = $l2 - $i; $d2 = $o2 >= 0 && $s2[$o2] ? $s2[$o2] : 0;
Условие всегда будет выполняться. Нужно добавить проверку отрицательных индексов. Например так: