ホームページ  >  記事  >  バックエンド開発  >  PHPで配列の値を繰り返すことができないのはなぜですか?それを避けるにはどうすればよいでしょうか?

PHPで配列の値を繰り返すことができないのはなぜですか?それを避けるにはどうすればよいでしょうか?

PHPz
PHPzオリジナル
2023-03-24 09:45:001484ブラウズ

PHP 配列は、大量のデータを保存し、操作を実行するために使用される一般的に使用されるデータ型です。 PHP 配列を使用する場合、従うべき基本的なルールがいくつかあります。その 1 つは、配列の値を繰り返すことができないことです。これは、同じ配列内のキーまたは要素として同じ値を使用できないことを意味します。

配列の値を繰り返すことができないのはなぜですか?

配列は、さまざまな種類の値を格納できる特別な変数タイプです。 PHP では、配列を使用して数値、文字列、オブジェクトなどを保存できます。配列では、各要素に一意のキーと値があります。キーは繰り返すことができますが、値は繰り返すことができません。そうしないと競合が発生します。

たとえば、学生のリストを格納する配列がある場合、各学生の名前が要素の値になります。 2 人の生徒が同じ名前を持つ場合、配列内での位置が決定されず、混乱やエラーが発生します。したがって、この状況を回避するには、配列の値が一意である必要があります。

配列値の重複を避けるにはどうすればよいですか?

PHP には、配列値の一意性を保証するためのメソッドがいくつか用意されています。利用可能な方法の一部を次に示します。

  1. array_unique() 関数の使用

この関数は、配列から重複する値を削除するために使用できます。各値が 1 回だけ出現する新しい配列を返します。たとえば、次のコードは、array_unique() 関数の使用方法を示しています。

$names = array("John", "Mary", "David", "Mary", "John");
$names = array_unique($names);
print_r($names);

出力結果:

Array
(
    [0] => John
    [1] => Mary
    [2] => David
)
  1. in_array() 関数の使用
#この関数は、値が配列内にすでに存在するかどうかを確認するために使用できます。値が重複している場合は、適切なアクションを実行できます。たとえば、次のコードは、in_array() 関数の使用方法を示しています。

$names = array("John", "Mary", "David");

if(in_array("Mary", $names)) {
    echo "Mary is already in the array";
} else {
    array_push($names, "Mary");
}

print_r($names);
出力結果:

Mary is already in the array
Array
(
    [0] => John
    [1] => Mary
    [2] => David
)
#array_search() 関数の使用
  1. #この関数は、配列内の値を検索し、その値のキーを返すために使用できます。値が重複している場合は、適切なアクションを実行できます。たとえば、次のコードは、array_search() 関数の使用方法を示しています。
  2. $names = array("John", "Mary", "David");
    
    $key = array_search("Mary", $names);
    
    if($key !== false) {
        echo "Mary is already in the array at index $key";
    } else {
        array_push($names, "Mary");
    }
    
    print_r($names);
出力結果:

Mary is already in the array at index 1
Array
(
    [0] => John
    [1] => Mary
    [2] => David
)

要約

PHP 配列を使用する場合, 値の重複を避けることは非常に重要です。 array_unique()、in_array()、array_search() などの関数を使用して、配列値の一意性を確保できます。コードを記述するときは、配列の値が一意であるかどうかに注意してください。これにより、不要なエラーを回避できます。

以上がPHPで配列の値を繰り返すことができないのはなぜですか?それを避けるにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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