この質問では、PHPのarray_unique()
関数の動作の変更について尋ねられます。 デフォルトでは、array_unique()
は、array_reverse()
の最後のarray_unique()
の発生を保持しているarray_reverse()
<code class="php"><?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 ) ?></code>
array_unique()
を効果的に維持するために、、true
、そして再びarray_reverse()
を再び活用できます。最後に、アレイを元の順序に戻し、最後の発生を維持します。
の内部ワーキングを変更しようとすることは推奨されず、PHPソースコード自体を変更せずに一般的に不可能です。array_unique()
array_reverse()
最後のインスタンスのみを維持しながら、アレイから重複した値を削除する単純な効率的な方法はありますか? ただし、前に示したように、array_unique()
、array_unique()
、および
PHPで一意のアレイ値を達成し、最後に遭遇した要素を優先するために、上記のアプローチは最も簡単で効率的です。 重要なのは、アレイを逆にし、array_unique()
を使用して最初の(現在の)発生を維持し、それを元に戻すことです。これにより、各重複値の最後の発生が保持され、以前の発生が破棄されます。 異なるデータ型に対して比較が正しく実行されることを確認するために、SORT_REGULAR
フラグを使用してarray_unique()
フラグを使用することを忘れないでください。 この方法は一般に、その簡潔さと同等のパフォーマンスのために手動の反復よりも好まれているため、多くのシナリオにとって実用的なソリューションとなっています。
以上がPHPアレイの重複排除は、表示される最後の要素を保持できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。