$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 の場合、array_unique を使用した方が foreach ループの判定効率が高く、両者の実行時間は一致しています。
したがって、配列容量が大きくない場合 (おそらく 1000 以内)、2 つを使用した場合の実行効率は同等であると結論付けることができます。
配列の容量が比較的大きい場合(特定の値はテストしていませんが、興味があればこの値を決定できます)、$intRandが徐々に増加するにつれて、array_uniqueのパフォーマンスが向上し、$intTotalを使用しません。 /$intRand の値は、比例して変化するようには感じられないということですが、基本的には、比率が大きいほど array_unique のパフォーマンスが向上するということになります。
要約すると、配列内の重複する値をフィルタリングする場合は、array_unique を使用することをお勧めします。配列が大きくない場合、array_unique を使用すると、コードが数行削減されます。配列の容量が大きすぎる場合、関数のパフォーマンスが向上するため、関数を使用しないのはなぜでしょうか。
次のようにコードをコピーします。 ?php $arrF = array(); $intTotal = 100; $i=0; $i++) [ ] = rand(1, $intRand); $arrS[] = rand(1, $in...