array_flip(array $trans) 將陣列的鍵與值互換。因為陣列鍵名不可重複,相同值在翻轉時只會保留最後出現的鍵名,從而達到「去重」效果。
array_flip():值變鍵,重複值自動去重(保留最後鍵名)。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() 同樣高效但保留原鍵名,視業務需求選擇。