ホームページ  >  記事  >  バックエンド開発  >  PHPで重複した配列を削除する方法(組み込み関数なし)

PHPで重複した配列を削除する方法(組み込み関数なし)

PHPz
PHPzオリジナル
2023-04-21 10:02:30687ブラウズ

PHP は、日常の開発で必要な多くの関数を簡単に実装できる強力な組み込み関数ライブラリを備えた、広く使用されているスクリプト言語です。ただし、場合によっては、組み込み関数を使用しない関数を実装する必要がある場合があり、そのためには PHP 言語の基本を深く理解して習得する必要があります。この記事では、組み込み関数を使用せずに PHP で重複する配列を削除する方法について説明します。

1. 問題の背景

実際の開発では配列を処理する必要が多く、場合によっては配列内の重複要素を削除する必要があります。この問題は、組み込み関数を使用すれば非常に簡単に解決できます。 PHP には、array_unique、array_count_values などの重複排除用の関数が多数用意されています。ただし、場合によっては、重複排除機能を自分で手動で実装する必要があるかもしれません。たとえば、試験や面接では、組み込み関数の使用が許可されず、手動でのみ関数を実装できる状況に直面する可能性があります。そこでこの記事では、PHPで重複排除機能を手動で実装する方法について説明します。

2. メソッドの説明

関数実装の基本的な考え方は次のとおりです:

1. 元の配列を走査し、各要素を新しい配列に追加します。配列 (要素が新しい配列に存在しない場合)。

2. in_array 関数を使用して、要素が新しい配列に含まれるかどうかを確認します。

3. 要素が新しい配列に出現する場合、操作は実行されません。

4. 要素が新しい配列にない場合は、それを新しい配列に追加します。

以下は具体的な実装コードです:

<?php
function deleteRepeat($arr)
{
    $newArr = array();
    foreach($arr as $value){
        if(in_array($value,$newArr)){
            continue;
        }else{
            $newArr[] = $value;
        }
    }
    return $newArr;
}
?>

この関数では、最初に新しい空の配列 $newArr を宣言します。次に、foreach ループを使用して、元の配列 $arr を走査します。ループ本体で in_array 関数を使用して、各要素が $newArr に表示されるかどうかを確認します。要素が $newArr に表示される場合は、Continue ステートメントを使用してこのループをスキップします。それ以外の場合は、[] 演算子を使用して要素を $newArr に追加します。最後に、新しい配列 $newArr が返されます。

3. テスト

関数が有効かどうかを検証するには、テストする必要があります。次のコードは、関数を使用して配列から重複要素を削除する方法を示しています:

<?php
$arr = array(3,6,9,6,3,8,1);
$newArr = deleteRepeat($arr);
print_r($newArr);
?>

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

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

ご覧のとおり、関数は元の要素から重複要素を正常に削除しています。配列。

4. 概要

この記事では、PHP で配列の重複排除機能を手動で実装する方法について説明しました。 PHP には重複排除用の組み込み関数が多数あるため、多くの開発者はこの関数を手動で実装するのが冗長であると感じるかもしれません。ただし、場合によっては、PHP 言語の基本を習得していることが証明されるため、この機能を手動で実装する方法を知っておくことが重要です。同時に、重複排除機能を手動で実装することは、PHP での配列操作のワークフローをより深く理解するのにも役立ちます。これは、開発中のコードの最適化とデバッグにも役立ちます。

以上がPHPで重複した配列を削除する方法(組み込み関数なし)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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