ホームページ >バックエンド開発 >PHPの問題 >phpの配列は配列の中にありますか?

phpの配列は配列の中にありますか?

WBOY
WBOYオリジナル
2023-05-06 09:38:07608ブラウズ

PHP プログラミングでは、配列は大量のデータの保存と処理によく使用される一般的なデータ構造です。場合によっては、配列が別の配列内にあるかどうかを判断する必要があります。この記事では、PHP を使用して配列が別の配列内にあるかどうかを判断する方法を紹介します。

まず第一に、PHP における配列の表現を理解する必要があります。一般に、PHP 配列は次の 2 つの方法で作成できます:

1. キーワード配列を使用して作成:

$array1 = array(“apple”, “orange”, “banana”);

2. 角括弧 [] を使用して作成:

$array2 = [“apple”, “orange”, “banana”];

どちらのメソッドも、複数の要素を含む配列を作成します。配列が別の配列内にあるかどうかを判断するには、PHP 組み込み関数 in_array() を使用する必要があります。構文は次のとおりです。

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

このうち、パラメータ $needle は検索する値、パラメータ $haystack は検索する配列、パラメータ $strict は一致比較を使用するかどうかを示します。この関数は、検索結果を表すブール値を返します。

in_array() 関数を使用すると、値が配列内にあるかどうかを簡単に判断できます。たとえば、次のコードは、値「apple」が $array1 配列内にあるかどうかを判断します。

if ( in_array(“apple”, $array1) ) {
    echo “yes”;
} else {
    echo “no”;
}

「apple」が $array1 配列内にある場合、プログラムは「yes」を出力し、それ以外の場合は「yes」を出力します。 "いいえ"。

それでは、配列が別の配列にあるかどうかを判断したい場合、どうやってそれを実現するのでしょうか?具体的な例を見てみましょう:

$array1 = [“apple”, “orange”, “banana”];
$array2 = [“orange”, “banana”];

上の例では、$array2 のすべての要素が $array1 に出現しているため、$array2 は $array1 のサブセットです。

$array2 が $array1 にあるかどうかを判断するには、$array2 のすべての要素を走査し、それらがすべて $array1 に出現するかどうかを判断する必要があります。これは、for ループを通じて実現できます。

$flag = true;
for ($i=0; $i<count($array2); $i++) {
    if( !in_array($array2[$i], $array1) ) {
        $flag = false;
        break;
    }
}
if ( $flag ) {
    echo “yes”;
} else {
    echo “no”;
}

上記のコードでは、最初に $flag 変数を設定して、すべての要素が見つかったときの状況をマークします。次に、$array2 内のすべての要素を反復処理し、in_array() 関数を使用して、それらがすべて $array1 に出現するかどうかを判断します。 $array1 にない要素が見つかった場合は、$flag 変数を false に設定し、ループを抜けます。最後に、$flag 変数の値に基づいて結果が出力されます。

この方法は単なる単純な判断方法であり、通常はこれでニーズを満たすことができます。ただし、実際の作業では、配列に別の配列の要素が含まれている場合や、配列に多次元配列が含まれている場合など、より複雑な状況に遭遇することがあります。このような状況では、再帰関数やコールバック関数を使用するなど、より複雑な判断方法を使用する必要があります。

要約すると、PHP で配列が別の配列内にあるかどうかを判断するのは、基本的に配列を走査してその中の要素を比較することです。実際のアプリケーションでは、in_array() 関数またはより複雑な判断メソッドを使用してこの関数を実装し、さまざまなニーズを満たすことができます。

以上がphpの配列は配列の中にありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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