【问题标题】:Remove duplicate substring from comma seperated string in php从 php 中的逗号分隔字符串中删除重复的子字符串
【发布时间】:2016-04-19 11:44:56
【问题描述】:

我有这个字符串:$entitlemnet = '43857403,erot,43857403,erot,rejh'

我想从这个字符串中删除所有重复的值。我该怎么做?

参见下面的代码。

$roql_Ent_result = RNCPHP\ROQL::query($EntQuery)->next();

while ($Ent_result = $roql_Ent_result->next())
{
    $Entitlement = $Ent_result['Entitlement'];
    $findme = $Entitlement.",";
    $pos = stripos($EntitlementString, $findme);

    if ($pos === false)
    {
        $EntitlementString = $EntitlementString.$Entitlement.", "; 
    }
}

if ($EntitlementString != "")
{
    $EntitlementString = substr($EntitlementString,0,(strlen($EntitlementString)-2)).";";
}

【问题讨论】:

  • 你的意思是这个字符串43857403,erot,43857403,erot,rejh 会导致43857403,erot,rejh 吗?

标签: php string duplicates substring


【解决方案1】:

如果您只是想从字符串中删除重复项。

$entitlemnet = '43857403,erot,43857403,erot,rejh';
$unique_string = implode(',', array_unique(explode(',', $entitlemnet)));
  1. 通过使用explode() 将字符串拆分为数组 分隔符','

  2. 使用函数 array_unique() 删除重复值

  3. 通过将数组值与 分隔符','

【讨论】:

    【解决方案2】:

    试试这个

    $entitlemnet = "43857403,erot,43857403,erot,rejh";
    $result = implode(',', array_unique(explode(',', $entitlemnet)));
    echo $result;
    

    【讨论】:

      【解决方案3】:

      我认为你可以这样做:

      $entitlemnet = "43857403,erot,43857403,erot,rejh";
      $result = implode(',', array_unique(explode(',', $entitlemnet)));
      echo $result;
      

      将导致:

      43857403,erot,rejh

      【讨论】:

      • 非常感谢,这段代码运行良好,但如果它们是开头的空格,例如 'STOR-APD, 001-0669-001,ISSP3.0,CXFS7,STOR-SAN, STOR-CXFS、STOR-DMF、STOR-TMF、001-0586-030、DMF6、STOR-DMF、001-0669-001、XFS-XVM6、XFS-XVM-RHEL6、STOR-XVM、STOR-NAS、001- 9007-001,STOR-LUSTRE' 它不会删除重复项。
      • @hemanthkumar 您可以使用array_maptrim$result = implode(',', array_unique(array_map('trim', explode(',', $entitlemnet))));
      猜你喜欢
      • 1970-01-01
      • 2018-08-27
      • 2012-01-30
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多