PHP で配列の重複排除を実装し、添字を変更する方法

PHPz
リリース: 2023-04-19 09:51:55
オリジナル
721 人が閲覧しました

PHP を使用した開発プロセスでは、配列の重複排除が一般的な操作ですが、多くの場合、重複排除だけでなく、配列の添え字を変更する必要があり、重複排除の結果を処理する必要があります。この記事では、PHP を使用して配列の重複を排除し、添え字を変更する方法を紹介します。

1. array_unique() 関数を使用して配列の重複を排除する

PHP では、array_unique() 関数を使用して配列の重複を排除できます。この関数は、配列内の重複した値を削除します。新しい配列。例:

$arr = array('apple', 'banana', 'orange', 'apple', 'pear');
$new_arr = array_unique($arr);
print_r($new_arr);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
    [4] => pear
)
ログイン後にコピー
ログイン後にコピー

上の例では、元の配列 $arr には 2 つの 'リンゴ' が含まれており、これらは array_unique() 関数を使用した重複排除後に取得されます 新しい配列$new_arr では、結果には「リンゴ」が 1 つだけ保持されます。

2. foreach ループを使用して配列の重複を排除し、添字を変更する

array_unique() 関数を使用して配列の重複を簡単に排除できますが、新しい添字を制御する方法はありません。以下では、foreach ループを使用して配列の重複を排除し、添え字を変更する方法を示します。

$arr = array('apple', 'banana', 'orange', 'apple', 'pear');
$new_arr = array();
foreach ($arr as $key=>$value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[] = $value;
    }
}
print_r($new_arr);
ログイン後にコピー

ここでは、まず新しい空の配列 $new_arr を定義し、次に foreach ループを使用して元の配列 $arr を走査し、各値が $new_arr に存在するかどうかを確認します。存在しない場合は、それを に追加します。 $new_arr. .この方法の利点は、添字を手動で制御することで配列を変更できることです。

元の配列の最後の重複値を保持したい場合は、少し変更する必要があります。array_reverse() 関数を使用して元の配列を反転すると、最後の重複要素が保持されます。重複排除中、例:

$arr = array('apple', 'banana', 'orange', 'apple', 'pear', 'banana');
$new_arr = array();
$arr = array_reverse($arr);
foreach ($arr as $key=>$value) {
    if (!in_array($value, $new_arr)) {
        $new_arr[$key] = $value;
    }
}
$new_arr = array_reverse($new_arr);
print_r($new_arr);
ログイン後にコピー

上記の例では、最初に元の配列を反転し、次に foreach ループを使用して走査し、新しい配列の添字を最後に出現した配列の添字に設定します。元の配列の要素。

3. array_flip() 関数を使用して配列の重複を排除し、添字を変更します。

配列の重複を排除するもう 1 つの一般的な方法は、array_flip() 関数を使用することです。配列、キーと値。配列内に重複する値がある場合、後続のキーが前のキーを上書きすることで重複排除操作が実現され、array_keys() 関数を通じて新しい配列の添字を取得できます。例:

$arr = array('apple', 'banana', 'orange', 'apple', 'pear', 'banana');
$new_arr = array_flip($arr);
$new_arr = array_keys($new_arr);
print_r($new_arr);
ログイン後にコピー

出力結果は次のとおりです:

Array
(
    [0] => apple
    [1] => banana
    [2] => orange
    [4] => pear
)
ログイン後にコピー
ログイン後にコピー

上記の例では、まず array_flip() 関数を使用して元の配列の重複を除去し、新しい配列の添字を次のように設定します。元の配列の値を取得し、array_keys() 関数を通じて新しい配列の添字配列を取得します。この方法はシンプルで使いやすいですが、新しい配列の添え字の順序によって簡単に乱れます。

4. 概要

上記は、PHP で配列の重複を排除し、添え字を変更する方法であり、実際のさまざまなシナリオに応じてさまざまな方法を選択できます。これらのメソッドはすべて元の配列を変更することに注意してください。元の配列を保持する必要がある場合は、コピーを使用して操作する必要があります。同時に、配列に対する重複排除操作では、通常、比較関数の使用が必要になりますが、これは比較的複雑なトピックなので、この記事ではあまり説明しません。

以上がPHP で配列の重複排除を実装し、添字を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート