1. 程式人生 > >php利用array_flip實現陣列鍵值交換去除陣列重複值

php利用array_flip實現陣列鍵值交換去除陣列重複值

php 如何去除一個數組裡面的重複值?按一般的思維,一般都會是進行兩個 foreach 迴圈剔除掉數組裡面相同的值。但是這個方法不是一種最優的方法,下面介紹一個 php 自帶的陣列函式 array_flip 函式。

首先介紹一下 array_flip 函式。

array array_flip ( array trans)
trans 需要進行反轉的陣列
 
 【功能】

函式交換陣列中的鍵和值,該函式將返回一個反轉後的陣列,即原陣列的值變成了新陣列的鍵值,原陣列的鍵值變成了新陣列的值。如果陣列中有相同的值,則只有最後的一個具有同樣值的才會被反轉到新陣列。
 【使用範圍】
 
php4、php5

【示例】

  1. <?php 
  2. $trans = array ("a" => 1, "b" => 1, "c" => 2); 
  3. $trans = array_flip ($trans); 
  4. print_r($trans); 
  5. ?>  

以上結果為:

  1. Array 
  2.     [1] => b 
  3.     [2] => c 

由以上結果我們可以看出,array_flip 函式能夠去除數組裡面的值重複的項,那麼如果我們需要去除一個數組裡面的重複項的話,只需對該陣列進行兩次 array_flip 即可。還是上例中的資料,如果如下:

  1. <?php 
  2. $trans = array ("a"
     => 1, "b" => 1, "c" => 2); 
  3. $trans = array_flip (array_flip($trans)); 
  4. print_r($trans); 
  5. ?>  

則結果為:

  1. Array 
  2.     [b] => 1 
  3.     [c] => 2 
  4. )