从php中的逗号分隔字符串中删除重复的子字符串

时间:2016-01-14 08:21:53

标签: php string duplicates substring

我有这个字符串:$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)).";";
}

3 个答案:

答案 0 :(得分:2)

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

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

  2. 使用函数array_unique()

  3. 删除重复值
  4. 通过连接数组值将数组转换回字符串     分隔符','

答案 1 :(得分:1)

试试这个

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

答案 2 :(得分:0)

我认为你可以这样做:

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

将导致:

  

43857403,EROT,rejh