【问题标题】:difference between two strings两个字符串的区别
【发布时间】:2012-03-13 22:03:48
【问题描述】:
$first = 1,2,3,4,5;
$second = 1,3,5,6;

我需要得到这两者的差异,这样结果就会像:
$result = 2,4,6;

【问题讨论】:

    标签: php compare


    【解决方案1】:

    假设你的意思

    $first = "1,2,3,4,5";
    $second = "1,3,5,6";
    

    那就试试

    $first_array = explode(",", $first);
    $second_array = explode(",", $second);
    $result_array = array_merge(array_diff($first_array, $second_array), array_diff($second_array, $first_array));
    $result = implode("," $result_array);
    

    【讨论】:

      【解决方案2】:

      试试这个:

      implode(',',array_diff(explode(',',$first),explode(',',$second)));
      

      编辑:

      更新到完全差异(在 PHP.net 上找到并修改):

      $first = explode(',', $first);
      $second = explode(',', $second);
      echo implode(',',array_diff(array_merge($first, $second), array_intersect($first, $second)));
      

      【讨论】:

      • array_diff 不会返回 6 我不认为
      • array_diff 比较 array1 和 array2 并返回差异 - 必须合并两种方式。检查我的答案
      • @AaronW。谢谢你的澄清。我没有意识到这一点。在 PHP.net 上的 array_diff() 的 cmets 中看到另一种方式后,我修改了我的答案
      【解决方案3】:

      首先,我假设您的字符串被正确引用为字符串:

      $first = "1,2,3,4,5";
      $second = "1,3,5,6";
      $diff_string = array_diff(explode(",", $first), explode(",", $second));
      $diff_array = implode(",", $diff_string);
      

      【讨论】:

        猜你喜欢
        • 2020-12-25
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 2010-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多