ホームページ >バックエンド開発 >PHPの問題 >PHP配列内の同じ数値をクリアする方法

PHP配列内の同じ数値をクリアする方法

PHPz
PHPzオリジナル
2023-04-27 09:06:14511ブラウズ

PHP では、検索、並べ替え、重複排除など、配列に対してさまざまな操作を実行する必要があることがよくあります。重複排除操作は、配列内の重複要素を削除することです。実際の開発では同じ番号をクリアしなければならない場面がよくありますが、この記事ではPHPの配列を使って重複した番号を削除する方法を紹介します。

1. array_unique() 関数

PHP には array_unique() 関数があり、配列から重複した値を削除し、新しい配列を返すために使用できます。この関数は値の比較を使用します。つまり、値が等しい要素のみが重複とみなされます。

次は、array_unique() 関数を使用して重複を削除するサンプル コードです:

<?php
//定义一个包含相同数字的数组
$array = array(1, 1, 2, 3, 4, 4, 5, 5, 5);

//去重
$new_array = array_unique($array);

//输出去重后的数组
print_r($new_array);
?>

上記のコードを実行すると、出力が得られます:

Array
(
    [0] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

繰り返された数字が消去され、異なる数字だけが残っています。

2. ループ トラバーサルを使用して重複を削除する

array_unique() 関数を使用することに加えて、ループ トラバーサルを使用して重複を削除することもできます。具体的な実装は次のとおりです。

<?php
//定义一个包含相同数字的数组
$array = array(1, 1, 2, 3, 4, 4, 5, 5, 5);

//去重
$new_array = array();
foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}

//输出去重后的数组
print_r($new_array);
?>

上記のコードでは、空の配列 $new_array を使用して一意の数値を格納します。次に、foreach ループを使用して元の配列 $array を調べます。現在の要素が $new_array にない場合は、現在の要素を $new_array 配列に追加します。

上記のコードを実行すると、前と同じ出力が得られます:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

3. パフォーマンスの比較

重複排除の 2 つの方法については上で説明し、次にそれらのパフォーマンスを説明します。どうやって?比較してみましょう。

2 つのメソッドのパフォーマンスを比較するために、100,000 個の乱数を含む配列を定義し、2 つのメソッドを使用して重複を排除し、実行時間を計測しました。コードは次のとおりです。

<?php
//1. 使用 array_unique() 函数
$array = array();
for ($i = 0; $i < 100000; $i++) {
    $array[] = rand(1, 100000);
}
$start_time = microtime(true);
$new_array = array_unique($array);
$end_time = microtime(true);
echo &#39;使用 array_unique() 函数执行时间:&#39;, $end_time - $start_time, &#39; 秒&#39;;

echo "\n";

//2. 使用循环遍历
$array = array();
for ($i = 0; $i < 100000; $i++) {
    $array[] = rand(1, 100000);
}
$start_time = microtime(true);
$new_array = array();
foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}
$end_time = microtime(true);
echo &#39;使用循环遍历执行时间:&#39;, $end_time - $start_time, &#39; 秒&#39;;
?>

上記のコードを実行すると、次の出力が得られます。

使用 array_unique() 函数执行时间:0.011376142501831 秒
使用循环遍历执行时间:15.46102309227 秒

array_unique() 関数を使用すると、実行効率が大幅に向上することがわかります。

4. まとめ

実際の開発では、プログラムの実行効率を高めるために、ループなどのコードを記述する代わりに、PHP が提供する組み込み関数を使用するようにします。自分たちで処理します。配列から同一の数値を削除するという問題については、PHP の組み込みの array_unique() 関数を使用するのが最も簡単で効率的な方法ですが、ループ トラバーサルを使用して重複を削除すると、多くの時間とリソースが無駄になります。

以上がPHP配列内の同じ数値をクリアする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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