PHP は文字列が多次元配列に存在するかどうかを判断します

PHPz
リリース: 2023-05-19 13:36:07
オリジナル
478 人が閲覧しました

PHP は、多次元配列を簡単に作成および操作できる強力なプログラミング言語です。多次元配列を扱う場合、配列内に特定の文字列が存在するかどうかを確認する必要があることがよくあります。この記事では、PHP を使用して、指定された文字列が多次元配列に存在するかどうかを判断する方法を紹介します。

まず、多次元配列とは何かを理解する必要があります。多次元配列は、他の配列を含む配列です。 PHP では、入れ子配列を使用して多次元配列を実装できます。たとえば、次は 2 次元配列の例です。

$students = array(
    array("name"=>"张三", "age"=>18, "class"=>"一班"),
    array("name"=>"李四", "age"=>19, "class"=>"二班"),
    array("name"=>"王五", "age"=>20, "class"=>"三班")
);
ログイン後にコピー

この配列には 3 つのサブ配列が含まれており、各サブ配列には生徒の名前、年齢、クラスを表す 3 つのキーと値のペアが含まれています。それぞれ。生徒の名前がこの配列に存在するかどうかを確認したい場合は、次の手順に従います。

  1. foreach を使用して、配列内の各サブ配列をループします。
  2. サブ配列の走査中に、foreach を再度使用して、現在のサブ配列内の各キーと値のペアをループします。
  3. 現在のキーと値のペアの値が、検索する文字列と等しいかどうかを判断します。
  4. 指定された文字列が見つかった場合は、ループを終了して true を返し、それ以外の場合は、配列全体が走査されるまで検索を続けます。

コードを使用して上記の手順を実装する例を次に示します。

function searchArrayValue($array, $searchValue) {
    foreach ($array as $subArray) {
        foreach ($subArray as $key => $value) {
            if ($value === $searchValue) {
                return true;
            }
        }
    }
    return false;
}

// 在$students数组中查找姓张的学生是否存在
if (searchArrayValue($students, "张")) {
    echo "找到了姓张的学生!";
} else {
    echo "没有找到姓张的学生。";
}
ログイン後にコピー

この例では、検索操作を実装するための searchArrayValue 関数を定義します。 。この関数は 2 つのパラメータを受け入れます。1 つ目は検索する配列、2 つ目は検索する文字列です。関数内では、最初に foreach を使用して各サブ配列を走査し、次に別の foreach を使用して現在のサブ配列内の各キーと値のペアを走査します。各キーと値のペアで、値が検索する文字列と等しいかどうかを判断します。等しい場合、指定された文字列が見つかり、関数は true を返します。配列全体を走査しても何も見つからない場合は、見つからないことを示す false が返されます。

=== を使用してそれらが等しいかどうかを判断する場合、比較演算子は 2 つの等号ではなく 3 つの等号である必要があることに注意してください。これは、PHP では等号が 2 つあると型変換が行われるため、誤判定が発生する可能性があるためです。 3 つの等号を使用すると、型変換は実行されず、型と値が等しい場合にのみ true が返されます。

判定したいものが多次元の連想配列の場合も同様の操作が可能です。たとえば、次は 3 次元連想配列の例です:

$employees = array(
    "部门A" => array(
        array("name" => "张三", "gender" => "男", "salary" => 5000),
        array("name" => "李四", "gender" => "女", "salary" => 6000),
    ),
    "部门B" => array(
        array("name" => "王五", "gender" => "男", "salary" => 7000),
        array("name" => "赵六", "gender" => "女", "salary" => 8000),
    )
);
ログイン後にコピー

この配列は、2 つの部門の従業員情報を表します。各従業員には、名前、性別、給与という 3 つの属性が含まれています。配列全体に女性従業員が存在するかどうかを調べたい場合は、次のように実行できます。

function searchArrayValue2($array, $searchValue) {
    foreach ($array as $subArray) {
        foreach ($subArray as $value) {
            foreach ($value as $key => $val) {
                if ($val === $searchValue) {
                    return true;
                }
            }
        }
    }
    return false;
}

// 在$employees数组中查找女性员工是否存在
if (searchArrayValue2($employees, "女")) {
    echo "找到了女性员工!";
} else {
    echo "没有找到女性员工。";
}
ログイン後にコピー

この例では、searchArrayValue2 という名前の関数を定義し、前の関数を定義します。は、今回渡される多次元配列がインデックス配列ではなく連想配列であることを除いて、同様です。関数内では、3 つの foreach ループを使用して各部門、各従業員、および各属性を走査し、それが検索対象の文字列と等しいかどうかを判断します。同様に、文字列が見つかった場合は、検索が成功したことを示す true が返されます。それ以外の場合は、検索が失敗したことを示す false が返されます。

要約すると、PHP を使用して文字列が多次元配列に存在するかどうかを判断することは基本的な操作であり、実際のアプリケーションでよく使用されます。この記事の導入により、読者は多次元配列内の文字列の有無を判断する方法を習得し、それを自分のプロジェクトに柔軟に適用することができます。

以上がPHP は文字列が多次元配列に存在するかどうかを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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