ホームページ >バックエンド開発 >PHPチュートリアル >PHP 配列内の重複値をフィルタリングするための PHP 配列実装コード

PHP 配列内の重複値をフィルタリングするための PHP 配列実装コード

WBOY
WBOYオリジナル
2016-07-29 08:46:141012ブラウズ

コードをコピーします コードは次のとおりです:


$arrF = array();
$intTotal = 100; ($i =0; $i < $intTotal; $i++)
{
$arrF[] = rand(1, $intRand)
$arrS[] = rand(1, $intRand); arrT = array_merge ($arrF, $arrS);
$arrRF = array();
foreach($arrT as $v)
if(in_array($v, $arrRF))
{
継続;
else
{
$arrRF[] = $v;
}
$intEnd = $intEnd-$intStart; :$intTime< ;br/>";
$intStart1 = time();
$arrRS = array_unique($arrT);
$intEnd2 = time();
$intTime2 = $intEnd2-$intStart1;
echo " array_unique 関数、滞在時間:($intTime2)";
echo "

"; <br>print_r($arrT); <br>print_r($arrRF); <br>print_r($arrRS); <br>echo "
";
?>


$intTotal が 1000 以内など比較的小さい場合、基本的に $intRand の値は結果に影響を与えず、両者の実行時間はほぼ同じになります。
$intTotal が 10000 より大きい場合、$intRand が 100 のとき、foreach ループの判定 $intRand=10 よりも array_unique を使用した効率が高く、両方の実行時間は同じです。
したがって、配列の容量が大きくない場合 (おそらく 1000 以内)、2 つを使用した場合の実行効率は同等であると結論付けることができます。
配列の容量が比較的大きい場合 (特定の値はテストしていません。興味があればこの値を決定できます)、$intRand が徐々に増加するにつれて、array_unique のパフォーマンスが向上します。$intTotal/ 比率の理由は使用しません。 $intRand の値は、比例して変化するようには感じられないという点で異なりますが、基本的には、比率が大きいほど array_unique のパフォーマンスが向上するということになります。
要約すると、配列内の重複する値をフィルタリングする場合は、array_unique を使用することをお勧めします。もちろん、array_unique を使用すると、コードが数行削減されます。配列の容量が大きすぎると、関数のパフォーマンスが向上するため、これを使用しないのはなぜでしょうか。
上記は、PHP 配列の内容を含む、PHP 配列内の重複する値を除外するための PHP 配列の実装コードを紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。


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