2011-10-20 74 views
1

即時創建一個學生主題保留,將添加表中的主題行。我想檢測重複值的存在,然後回顯如果檢測到值。如何檢測會話數組php中的重複值?

例如,給定以下的數組:

$c=0; 

     while($c<=$counter){ 
      if($_SESSION["S['$c']"]==""){ 
      echo "-"; 
      } 
     $array1=array($_SESSION["lect['$c']"],$_SESSION["labt['$c']"],$_SESSION["Day['$c']"] ,$_SESSION["lday['$c']"]); 
     if(count(array_unique($array1))<count($array1)){ 
      echo "Duplicate entry found in array"; 
     } 
     else{ 
        echo "<tr><td>".$_SESSION["S['$c']"] . " </td> 
       <td>".$_SESSION["lec['$c']"] . "<br/>".$_SESSION["lab['$c']"] . "</td> 
       <td>".$_SESSION["lect['$c']"] . "<br/>".$_SESSION["labt['$c']"] . "</td> 
       <td>".$_SESSION["Day['$c']"] . "<br/>".$_SESSION["lday['$c']"] . "</td> 
       <td>".$_SESSION["room['$c']"] . "<br/>".$_SESSION["lroom['$c']"] . "</td></tr><br>"; 
      $unit=$_SESSION["lec['$c']"] + $_SESSION["lab['$c']"]; 
       $units= $units+$unit; 
     } 

但是當我添加相同的值的值將重新添加,但是當我添加另一個它顯示回聲「複製陣列中找到的條目」;我哪裏錯了?對不起,事先我英語不好的感謝,如果我的代碼是錯了,請給我一些建議

這裏點擊事件以及添加到另一個表:

$i=0; 
$b =1; 
while($row=mysql_fetch_assoc($sql)){ 


echo "<tr><td>".$row['Subject']."<input type='hidden' name='subj[$i]' value=".$row['Subject']."></td> 
<td>".$row['Lec']."<br/>".$row['Lab']."<input type='hidden' name='leclab[$i]' value=".$row['Lec']."><input type='hidden' name='lab[$i]' value=".$row['Lab']."></td> 

<td>".$row['Descriptive']."<input type='hidden' name='desc[$i]' value=".$row['Descriptive']."></td> 
<td>".$row['Day']."<br/>".$row['Labday']."<input type='hidden' name='daylabday[$i]' value=".$row['Day']."><input type='hidden' name='labday[$i]' value=".$row['Labday']."></td> 

<td>".$row['LecTime']."<br/>".$row['LabTime']."<input type='hidden' name='lectlabt[$i]' value=".$row['LecTime']."><input type='hidden' name='labtime[$i]' value=".$row['LabTime']."></td> 

<td>".$row['Room']."<br/>".$row['Labroom']."<input type='hidden' name='roomlabroom[$i]' value=".$row['Room']."><input type='hidden' name='labroom[$i]' value=".$row['Labroom']."></td> 

<td><input id='send' name='reserv[$i]' type='submit' value='Add' onclick='addRow('myTable')' /> </td></tr>"; 

$i++; 


} 
} 

下面是輸出的樣本,但所有我想要的是在表格上添加相同的值來回顯錯誤,我可以如何防止它?

enter image description here

+3

你是在濫用數組鍵表示法。你應該使用'$ _SESSION ['lect'] [$ c]'來創建適當的子數組,而不是將數組下標嵌入到鍵名中。 –

回答

0

你可以混合使用array_uniquearray_diff首先清理重複,然後作出一個diff得到只含重複值

+0

你能解釋更多先生我真的不明白cuz即時通訊新的php – nobito

0

array_count_values()將計重複的值數組。那麼你可以filter out那些計數1,看看哪些是重複的

+0

你能解釋更多先生我不能真正瞭解cuz即時新的php – nobito

+0

你可以添加一些示例輸入和輸出爲您的代碼?我不確定你所要求的是你需要什麼,重新閱讀你的代碼 – Einacio

+0

後,如果我將value1添加到表中並重新添加它,它會回顯相同的值,我不能發佈樣例圖片。 – nobito