ホームページ >バックエンド開発 >PHPの問題 >PHPアレイの重複排除は、表示される最後の要素を保持できますか?

PHPアレイの重複排除は、表示される最後の要素を保持できますか?

Karen Carpenter
Karen Carpenterオリジナル
2025-03-03 16:49:13412ブラウズ

PHPアレイ一意のキープラストエレメント?

この質問では、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で一意の配列値を達成して、以前の要素よりも最後に遭遇した要素を優先するにはどうすればよいですか?

PHPで一意のアレイ値を達成し、最後に遭遇した要素を優先するために、上記のアプローチは最も簡単で効率的です。 重要なのは、アレイを逆にし、array_unique()を使用して最初の(現在の)発生を維持し、それを元に戻すことです。これにより、各重複値の最後の発生が保持され、以前の発生が破棄されます。 異なるデータ型に対して比較が正しく実行されることを確認するために、SORT_REGULARフラグを使用してarray_unique()フラグを使用することを忘れないでください。 この方法は一般に、その簡潔さと同等のパフォーマンスのために手動の反復よりも好まれているため、多くのシナリオにとって実用的なソリューションとなっています。

以上がPHPアレイの重複排除は、表示される最後の要素を保持できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。