この記事の例では、PHP 配列重複排除のより高速な実装について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
推奨チュートリアル: PHP ビデオ チュートリアル
PHP の使用array_unique()
この関数を使用すると、配列を渡し、重複する値を削除して、一意の値を持つ配列を返すことができます。この関数はほとんどの場合にうまく機能します。ただし、大きな配列に対して array_unique()
関数を使用しようとすると、実行が遅くなります。
推奨マニュアル:php完全独習マニュアル
もっと良くて速い関数がありますarray_flip()
array_unique()
関数を使用して一意の配列を作成する代わりに。この魔法の関数は、配列内の各要素のキーと値を交換します。キーの値は一意である必要があるため、array_unique()
関数と同じ結果が得られます。
/* 创建一个包含重复值的,一共四个元素的数组 */ $array = array('green','blue','orange','blue'); /* 翻转数组,你将会得到唯一键值的数组 array('green'=>0,'blue'=>1,'orange'=>2); */ $array = array_flip($array); /* 然后再翻转一次,将键和值重新放置,然后得到数组:array(0=>'green',1=>'blue',2=>'orange'); */ $array = array_flip($array); print_r($array)
実行結果:
Array ( [0] => green [3] => blue [2] => orange )
いくつかの要素を削除したため、配列は通常のシーケンスのようには見えません。たとえば、array(0=>'A',2=>'B',5=>'C'); を取得できます。場合によっては、これは問題になりませんが、配列キーを番号順に保つ必要がある場合は、1 つまたは 2 つの方法を使用して、キー値の順序が崩れる問題を解決できます。
array_merge を使用して配列のキーを修復する
array_flip を追加した後の関数は、配列のキーを並べ替えて、 0、1、2、3...
$array = array('green','blue','orange','blue'); $array = array_flip($array); $array = array_flip($array); /* 使用array_merge()函数修复键值*/ $array = array_merge($array); print_r($array)
操作結果は上記と同じです。
2 番目の方法は、次の方法です。 array_keys
配列キー値を修復するこの方法は、array_merge() 関数を使用するよりもわずかに高速であることに注意してください。最後のステップで array_keys() 関数を使用することもできます (この関数は反転された値を返します)。次に、配列内の値を反転すると、キーが順番に作成されます。
$array = array('green','blue','orange','blue'); $array = array_flip($array); /* 跟第一个例子一样,但是现在我们先提取数组的键值 */ $array = array_keys($array); print_r($array)
実行結果は上記と同じ
結論
非常に簡単です。大規模な配列で関数を使用すると、パフォーマンスが効果的に向上します。
おすすめ関連記事:
1.PHP で配列の重複排除を迅速に実装する方法
2.PHP は array_unique を使用して 2 次元配列の重複を排除します
3.php 1 次元配列の高効率な重複排除
関連ビデオの推奨事項:
1.Dugu Jiijian (4)_PHP ビデオ チュートリアル
以上がPHP配列から重複を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。