удалить совпадающие символы из обеих строк

varcharik

Новичок
(solved) удалить совпадающие символы из обеих строк

Привет *
скажите, пжт, что не так:

PHP:
$str1 = "abcd";
$str2 = "ahcd";
$count = 0;
       for ($i = 0; $i < 4; $i++) {
           // ищем i-й символ в первой строке
            $str1[$i]= substr($str1 , $i, 1);
            // ищем i-й символ во второй строке
            $str2[$i] = substr($str2 , $i, 1);
            if ($str1[$i] == $str2[$i] ){
                // увеличить счетчик на 1 и удалить совпадающие символы из обеих строк
                // $count КАКИМ-ТО ОБРАЗОМ = 4, ХОТЯ СОВПАДЕНИЙ = 3
                $count ++;
                // substr_replace не дает никакого рез-та вооще. str_replace дает кривой результат
                // $str1 = str_replace(str1[$i], "", str1);
                $str1= substr_replace($str1[$i] , "", $i);
                $str2 = substr_replace($str2[$i], "", $i);
               
            }
           
       }
Смысл задачи такой: нужно найти совпадения символов в двух строках,если эти символы в одинаковой позиции в строках, то удалить их из обеих строк и искать дальше, увеличив счетчик на 1. потом вывести значение счетчика - скока совпадений в строках. Помогите, пжт, логики не хватает
 

varcharik

Новичок
а в чем кривость, не вижу правда.. берем один и-тый символ строки..

Решение нашлось, тока с другой стороны надо было копать:
PHP:
$count = 0; 
for ($i = 3; $i >= 0; $i--) 
{ 
   if($str1[$i] == $str2[$i]) 
   { 
      $str1 = substr_replace($str1, '', $i, 1); 
      $str2 = substr_replace($str2, '', $i, 1); 
      $count++; 
   } 
}
потому как сдвигаются символы после удаленного на одну позицию влево..
 
Сверху