2016-03-30 51 views
0
$NoteKey = ","; 

(loop) if ... then{ 
    $NoteKey .= "</td><td>"; 
    $NoteKey .= $val2; 
    $NoteKey .= "</td><td>"; 
    $NoteKey .= $val3; 
    $NoteKey .= "</td><td>"; 
    $NoteKey .= "</td></tr>"; 
    $NoteKey .= ","; 
} 

$NoteKey_trim = trim($NoteKey, ","); 
$NoteKey_clean = explode(",",$NoteKey_trim); 
$NoteKey_unique = array_unique($NoteKey_clean); 

的問題是,什麼是輸出...它的工作,直到$NoteKey_clean那麼沒有輸出......如何從字符串中爆炸逗號分隔的數組中刪除重複值?

+0

不要把html標籤數組中,只是把自己的價值觀到陣列中,而當你需要打印出來然後把標籤之間的值。 – Rizier123

回答

-1

試試這個:

<?php 
$stuff = array(
    array('a1', 'a2', 'a3'), 
    array('b1', 'b2', 'b3'), 
    array('c1', 'c2', 'c3'), 
    array('b1', 'b2', 'b3'), 
    array('d1', 'd2', 'd3'), 
    array('d1', 'd2', 'd3') 
); 

$NoteKey = ','; 

foreach($stuff as $value) { 
    if($value[0] === 'b1' || $value[0] === 'd1') { 
     $NoteKey .= 
      '<tr><td>' . 
      $value[0] . 
      '</td><td>' . 
      $value[1] . 
      '</td><td></td></tr>,'; 
    } 
} 

$NoteKey = trim($NoteKey, ','); 
$NoteKey = explode(',', $NoteKey); 
$NoteKey = array_unique($NoteKey); 

echo '<table>', "\n"; 
foreach($NoteKey as $value) { 
    echo "\t", $value, "\n"; 
} 
echo '</table>'; 

輸出:

<table> 
    <tr><td>b1</td><td>b2</td><td></td></tr> 
    <tr><td>d1</td><td>d2</td><td></td></tr> 
</table> 

這裏的真相是,整個分隔字符串的東西並不是真的需要我在這種情況下,如果在變量中使用逗號,它甚至可能會破壞您的代碼。這裏有一個更好的,少粘性的解決方案:

<?php 
$stuff = array(
    array('a1', 'a2', 'a3'), 
    array('b1', 'b2', 'b3'), 
    array('c1', 'c2', 'c3'), 
    array('b1', 'b2', 'b3'), 
    array('d1', 'd2', 'd3'), 
    array('d1', 'd2', 'd3') 
); 

$NoteKey = array(); 

foreach($stuff as $value) { 
    if($value[0] === 'b1' || $value[0] === 'd1') { 
     $NoteKey[] = 
      '<td>' . 
      $value[0] . 
      '</td><td>' . 
      $value[1] . 
      '</td><td>' . 
      $value[2] . 
      '</td>'; 
    } 
} 

$NoteKey = array_unique($NoteKey); 

echo '<table>', "\n"; 
foreach($NoteKey as $value) { 
    echo "\t", '<tr>', $value, '</tr>', "\n"; 
} 
echo '</table>'; 
0
$NoteKey_trim = trim($NoteKey, ",");// delete "," 
$NoteKey_clean = explode(",",$NoteKey_trim); // $NoteKey_trim don't have "," 
//explode can't find "," 
$NoteKey_unique = array_unique($NoteKey_clean); 
$NoteKey_trim = trim($NoteKey); 

if(strpos(",",$NoteKey_trim)!==false){ // $NoteKey_trim has "," 
    $NoteKey_clean = explode(",",$NoteKey_trim); 
    $NoteKey_unique = array_unique($NoteKey_clean); 
} 
相關問題