2017-10-10 88 views
1
<?php 
    $MCA2DIVA=array('Sourabh','Akash','Anand','Karan','Amit'); 
    $MCA2DIVB=array('Komal','Ruchita','Akash','Amit','Pratik'); 
?> 
<html> 
    <head> 
     <style> 
      table 
      { 
       border:2px solid; 
       background-color:#acbe4a; 
       position:absolute; 
       top:25%; 
       left:30%; 
       height:40%; 
       width:10%; 
       border-radius:10px; 
       font-weight:bold; 
       font-size:17px; 
      } 
      td 
      { 
       border:2px solid; 
       text-align:center; 
       border-radius:8px; 
      } 
      p 
      { 
       position:absolute; 
       font-weight:bold; 
       font-size:25px; 
       left:10%; 
      } 
      p#p1 
      { 
       top:5%; 
      } 
      p#p2 
      { 
       top:8%; 
      } 
     </style> 
    </head> 
    <body bgcolor='#daf05e'> 
     <p id=p1> 
      <?php 
       echo "Array 1 : "; 
       print_r($MCA2DIVA); 
      ?> 
     </p> 
     <p id=p2> 
      <?php 
       echo "Array 2 : "; 
       print_r($MCA2DIVB); 
      ?> 
     </p> 
     <?php 
      $final=array_unique(array_merge($MCA2DIVA,$MCA2DIVB)); 
     ?> 
     <br> 
     <table> 
      <?php 
       for($i=0;$i<sizeof($final);$i++) 
       { 
      ?> 
     <tr><td> 
      <?php 
       print_r($final[6]); 
      ?> 
     </tr></td> 
      <?php 
       } 
      ?> 
     </table> 
    </body> 
</html> 

這是我的php代碼。我想合併兩個數組,刪除重複項並以表格格式顯示。但是array_unique函數顯示除數組中最後一個元素之外的必要輸出。當我嘗試打印單個數組值時,它顯示所需的值。請幫我找到問題。 array_merge()與array_unique()的PHP array_unique()函數

+2

你有什麼期望?你的數組包含重複值'Amit',所以它將被刪除:合併後的數組在通過'array_unique()' – Terry

回答

2

輸出: - https://eval.in/876892

所以,你會看到最後的值有指數9不6.

因此而不是使用for循環使用foreach(),因爲它需要照顧索引自己。

打印所有值一個接一個: -

<table> 
    <?php 
     foreach($final as $value) 
     { 
    ?> 
    <tr><td> 
     <?php 
      echo $value; 
     ?> 
    </tr></td> 
    <?php 
     } 
    ?> 
</table> 

如果你想只顯示最後一個值,然後(無需環路的): -

<table> 

    <tr><td> 
     <?php 
      echo $final[count($final)-1]; 
     ?> 
    </tr></td> 

</table> 

注意: -

如果你想使用for循環,那麼你必須重新建立索引使用array_values()你這樣的陣列: - https://eval.in/876905

+1

後將只包含9個項目而不是10個。這是我的任務尚未完成的唯一代碼。它運作良好! –

+1

foreach作品。但是你是否有任何想法,因爲for循環爲什麼是最後一個元素9的索引,而如果從0開始計算,它應該是7? –

+0

這是因爲'array_merg()'。你可以使用'array_values()'來重新索引你的數組,如: - 'array_values(array_unique(array_merge(your two array)))': - https://eval.in/876905 –

0
<?php 

$foo = array('Sourabh','Akash','Anand','Karan','Amit'); 
$bar = array('Komal','Ruchita','Akash','Amit','Pratik'); 

$names = array_unique(array_merge($foo, $bar)); 
sort($names); 

?> 
<table> 
    <thead> 
     <tr> 
      <th>Names</th> 
     </tr> 
    </thead> 
    <tbody> 
     <?php foreach($names as $name) { ?> 
      <tr> 
       <td><?= $name ?></td> 
      </tr> 
     <?php } ?> 
    </tbody> 
</table>