這個問題詢問要修改PHP的array_unique()
函數的行為。 默認情況下,array_unique()
保留了第一個重複元素的首次,並刪除後續重複。 但是,沒有內置的選項可以扭轉這種行為並保持最後的出現。 為了實現這一目標,您需要一個自定義解決方案。 我們可以利用>,,然後再次有效地保持最後發生。最後,它將數組倒回到其原始順序,並保持最後發生。 array_reverse()
>中的array_unique()
參數保留了鍵。 此方法對於適度尺寸的數組有效。 對於極大的數組,可以考慮更優化的算法,但是該解決方案提供了一種清晰而簡潔的方法。 array_reverse()
<?php function array_unique_last($array) { return array_reverse(array_unique(array_reverse($array, true), SORT_REGULAR), true); } $array = [1, 2, 3, 2, 4, 1, 5, 3]; $uniqueArray = array_unique_last($array); print_r($uniqueArray); // Output: Array ( [0] => 5 [1] => 3 [2] => 4 [3] => 2 [4] => 1 ) ?>
array_unique()
no,php's 不能直接修改php的函數以保留最後一個duplipation的元素。 它的核心功能旨在在保持第一次出現的同時刪除重複項。 為了實現所需的行為,您必須使用上一個答案中所述的解決方法,並採用和true
的組合。 不建議嘗試修改array_reverse()
>的內部功能,並且在不修改PHP源代碼本身的情況下通常是不可能的。
array_unique()
array_reverse()
array_unique()
array_unique()沒有直接完成此任務的單個內置php函數。 但是,如前所述,對於大多數用例,
是一個相對優化的函數本身。 雖然其他方法(例如通過數組迭代並使用臨時數組來跟踪最後一次出現)是可能的,但反轉方法通常更簡潔,並且經常表現良好,尤其是對於不太大的數組。
以在PHP中獲得唯一的數組值,從而優先考慮最後遇到的元素,上面概述的方法是最簡單的,是最直接和有效的。 關鍵是逆轉數組,使用array_unique()
來保持第一個(現在是最後一次)的發生,然後將其反向後退。這樣可以確保保留每個重複值的最後一次出現,同時丟棄早期出現。 請記住,將SORT_REGULAR
標誌與array_unique()
一起使用,以確保對不同數據類型正確執行比較。 由於其簡潔性和通常可比的性能,這種方法通常比手動迭代更優選,這使其成為許多情況的實用解決方案。
以上是PHP數組去重可以保留最後一個出現的元素嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!