比较两个字符串并删除或替换php中的相同字符

时间:2018-11-16 05:06:16

标签: php

我想比较两个字符串(variable1variable2),并且想从两个字符串中删除匹配的字符(仅一次)。

例如:Variable1 : AppleVariable2 : Ball

我尝试使用

array_diff(str_split('ball'), str_split('apple')) 

但我只有

  

b (已删除所有匹配的字符。)

预期输出

  
      
  • bl (从第二个字符串中删除字母A,L(仅一次)。)
  •   
  • ppe (从第一个字符串中删除字母A,L(仅一次)。)
  •   

如何只删除一次字符?

2 个答案:

答案 0 :(得分:2)

您需要使用 A B C D A 0 0 3 3 B 0 0 3 3 C 3 3 0 0 D 3 3 0 0 来解决此问题,如下所示:-

foreach()

输出:-https://3v4l.org/dp0ui

答案 1 :(得分:0)

您可以通过for-each进行处理

$a = 'ball';
$b = 'apple';

$arr1 = str_split($a);
$arr2 = str_split($b);

$firstArr = ( count($arr1) > count($arr2) ) ? $arr2 : $arr1;
$secondArr = ( count($arr1) < count($arr2) ) ? $arr2 : $arr1;

$objSecondArray = [];
$res = [];
foreach ($secondArr as $value) {
    $objSecondArray[$value] = 1;
}

foreach( $firstArr as $val ){
  if(array_key_exists($val, $objSecondArray) && $objSecondArray[$val] == 1) {
    $objSecondArray[$val] = null;
    continue;
  }
  $res[] = $val;
}

print_r($res);