PHP从mssql获取数组中删除重复的值


PHP remove duplicated values from mssql fetch array

我有使用数组的php mssql查询代码,但输出不会删除相同的字符。我的代码在这里

    $querysfzzrf88 = " SELECT * FROM Style WHERE StyleNo='$StyleNo'";
        $resultsfzzrf88 = mssql_query($querysfzzrf88);

        //display the results 
        while($rowsfzzrf88 = mssql_fetch_array($resultsfzzrf88))
        {
        $Status88 = $rowsfzzrf88["Status"];

   echo $Status88;
}

输出

 LNNNMMMMMMM

还有

var_dump($Status88); 

像这样的

string(1) "N" string(1) "N" string(1) "N" string(1) "L"

我想要输出

LNM

使用count_chars()

$str = "LNNNMMMMMMM";
echo count_chars($str, 3); 

第二个参数是mode

3 - a string containing all unique characters is returned.

点击此处查看演示

编辑

试试这个,

$str = " LNNNMMMMMMM";
echo preg_replace("/(.)''1+/", "$1", $str); or echo preg_replace('/(.)'1+/', '$1', $str);

请参阅此处的演示

在mysql查询中使用DISTINCT以避免重复值:

 $querysfzzrf88 = " SELECT DISTINCT status FROM Style WHERE StyleNo='$StyleNo'";
        $resultsfzzrf88 = mssql_query($querysfzzrf88);

        //display the results 
        while($rowsfzzrf88 = mssql_fetch_array($resultsfzzrf88))
        {
        $Status88 = $rowsfzzrf88["Status"];

   echo $Status88;
}

如果我误解了你的问题,很抱歉,这是你所期望的吗:

<?php
$chars = 'LNNNMMMMMMM';
$array = str_split($chars);
$array = array_count_values($array);
$array = array_flip($array);
echo implode('', $array);
?>

它产生LNM作为

更新:

//display the results
$duplicated88 = $Status88 = $unique88 = array();
while($rowsfzzrf88 = mssql_fetch_array($resultsfzzrf88)){
    $duplicated88[] = $Status88[] = $unique88[] = $rowsfzzrf88["Status"];
}
sort($unique88); 
sort($duplicated88);
$unique88 = implode('', array_unique($unique88));
print($unique88);