2015-06-23 24 views
0

我有一個數據庫有多個字段。我必須在html表格中顯示它的一個字段。我可以輕鬆做到。但問題是我想要顯示的字段可能包含連續的重複單詞。對於如如何檢查一個字是否在字符串中重複php

  • 約翰,麥克;約翰
  • 約翰
  • 麥克,麥克,麥克

現在我想做的事是,我有削減重複的單詞,即如果一個字連續超過一次,所以應該只顯示一次。 e.g上方,將會

  • 約翰,邁克
  • 約翰
  • 邁克

即我不想在HTML表格中顯示記錄時顯示重複。我想讓它變得動態,即不只是5到6個字。但要譴責重複,即使有成千上萬的記錄。

考慮行作爲一個字符串,我怎麼能消除這種使用PHP的整體價值..

感謝事先您的支持..

+1

歡迎堆棧溢出!這個問題在信息上有點短暫。你可以分享你的嘗試,以及你遇到了什麼問題? –

+0

步驟1正常化db –

+0

「UD; RUP」是一個字? –

回答

1
$variable="mike;john;mike"; 

$each=explode(';',$variable); 
//print_r($each); 
$new=array_unique($each); 

echo implode(';',$new); //mike;john 
0

如果你把每行或行作爲一個句子你可以在分隔符上分割你的例子中的分號。所以,如果「UD; RUP; UD,UD」是你做的東西像行:

line = "UD;RUP;UD;UD"; 
lineArray = new Array(); 
lineArray=line.split(";"); 

然後,你要創建一個新的陣列,將舉行您從您的字符串解析唯一值:

newArray = new Array(); 

現在你迭代第一個數組,看看你是否已經存儲它。如果你不這樣做,將其存儲推到新陣列:

for(i=0;i<lineArray .length;i++) 
{ 
    if((i==lineArray .indexOf(lineArray [i]))||(lineArray .indexOf(arr[i])==lineArray .lastIndexOf(arr[i]))) 
     newArray.push(lineArray [i]); 
} 

最後加入newArray元素:

newArray.join(";"); 
0

你可以用這個

<?php 

    $consulta=Array('azul,azul,verde,amarillo','verde','azul,verde','azul'); 

    $arrall=Array(); 

    foreach ($consulta as $value) { 

    $arrnew= explode(",", $value); 
    if(count($arrnew!=0)){ 

     foreach ($arrnew as $value) { 
      array_push($arrall, $value); 
     } 
     } 

    } 

    $result = array_unique($arrall); 
+1

沒有測試過你這個。 –

+0

確定它現在的作品,瘋狂的矯枉過正,但它'工程' –

0
嘗試

我會說,關鍵是爲每條記錄創建一個唯一索引。

<?php 
    $records = array(
     'john;mike;john', 
     'john', 
     'mike;sally;mike;mike' 
    ); 

    foreach($records as $index => $record) { 
     $records[$index] = implode(';',array_unique(explode(';',$record))); 
    } 
    print_r($records); 
?> 

這是普通的JavaScript來顯示概念

var records = [ 
    'john;mike;john', 
    'john', 
    'mike;sally;mike;mike' 
] 

var tuple; 
for(var r in records) { 
    var tuple = records[r].split(';'); 
    var index = {}; 
    for(var t in tuple) { 
     index[tuple[t]] = true; 
    } 
    records[r] = Object.keys(index).join(';'); 
} 

console.log(records); 

我希望這有助於:)

0

試試這個:

/** 
    * @param array|string $values 
    * @param string $delimiter 
    * 
    * @return bool|string 
    */ 
    function filterValues($values = array(), $delimiter = ';') { 
     if(is_string($values) && $values) { 
      $explodedValues = explode($delimiter, $values); 

      return implode($delimiter, array_unique($explodedValues)); 
     } else if(is_array($values) && $values) { 
      return implode($delimiter, array_unique($values)); 
     } else { 
      return false; 
     } 
    } 

    $string= 'mike;bike;mike'; 
    $array = array('mike', 'bike', 'mike'); 

    echo filterValues($string); 

    echo filterValues($array); 
相關問題