为了账号安全,请及时绑定邮箱和手机立即绑定

php删除除原件外的重复项

php删除除原件外的重复项

PHP
神不在的星期二 2022-07-22 15:11:11
这是我的代码   <?php     $string = 'this    this     good     good     hahah';    $rows = explode("\n",$string);    $unwanted = 'this|good';    $cleanArray= preg_grep("/$unwanted/i",$rows,PREG_GREP_INVERT);    $cleanString=implode("\n",$cleanArray);    print_r ( $cleanString );?>展示hahah我想要这样this good hahah我想保留一个...请帮助我,谢谢大家
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

此代码诉诸检查每一行以查看它是否与您的$unwanted字符串匹配,但它还会创建一个它已经遇到过的字符串数组,以便检查之前是否遇到过( using in_array())。unset()如果它匹配并且在它用于原始$rows删除该行之前已经遇到......


$string = 'this

    this

    good

   good

    hahah';


$rows = explode("\n",$string);

$unwanted = 'this|good';

$matched = [];

foreach ( $rows as $line => $row )   {

    if ( preg_match("/$unwanted/i",$row, $matches))  {

        if ( in_array(trim($matches[0]), $matched) === true )    {

            unset($rows[$line]);

        }

        $matched[] = $matches[0];

    }

}

$cleanString=implode("\n",$rows);

print_r ( $cleanString );


查看完整回答
反对 回复 2022-07-22
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

<?php

    $string = 'this

    this 

    good

    yyyy

    good

    xxxx

    hahah';


    print_r(

       implode("\n", 

          array_diff(array_unique(

             array_map(function($v) { return trim($v);}, explode("\n",$string))

          )

       ,array('xxxx', 'yyyy')))

    );


?>

输出:


this

good

hahah

参考:https ://ideone.com/Eo0MIM


查看完整回答
反对 回复 2022-07-22
?
HUH函数

TA贡献1836条经验 获得超4个赞

这是您可以执行此操作的一种方法:


$string = 'this

    this 

    good 

    good 

    hahah';


preg_match_all('/([a-z])+/', $string, $matches);

$string = implode("\n",array_unique($matches[0]));

echo $string;


查看完整回答
反对 回复 2022-07-22
  • 3 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信