首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP array_flip() 陣列去重技巧:鍵值互換實現唯一值過濾

     編輯:PHP 綜合知識

原理說明

array_flip(array $trans) 將陣列的鍵與值互換。因為陣列鍵名不可重複,相同值在翻轉時只會保留最後出現的鍵名,從而達到「去重」效果。

操作步驟

  1. 第一次 array_flip():值變鍵,重複值自動去重(保留最後鍵名)。
  2. 第二次 array_flip():鍵值再互換回來,得到去重後的陣列(鍵名為 0,1,2... 連續數字索引)。

代碼範例

$hills = array(
    "first"  => "data1",
    "second" => "data2",
    "third"  => "data1"   // 重複值
);

$flipped = array_flip($hills);        // ["data1" => "third", "data2" => "second"]
$unique  = array_flip($flipped);      // [0 => "data1", 1 => "data2"]

print_r($unique);
/*
Array
(
    [0] => data1
    [1] => data2
)
*/

注意事項

  • 值必須為合法鍵型別(int 或 string),否則觸發警告並跳過該元素。
  • 保留的是「最後出現」的鍵名對應值,若需保留首次出現,請先 array_reverse() 再翻轉兩次。
  • 僅適用於一維陣列;多維陣列需遞迴處理或改用 array_unique()(保留鍵名但不重設索引)。

效能對比

雙重 array_flip() 為 C 底層實作,速度極快,適合大陣列去重;array_unique() 同樣高效但保留原鍵名,視業務需求選擇。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved