ホームページ > バックエンド開発 > PHPの問題 > PHPで2次元配列のファジークエリを実装する方法

PHPで2次元配列のファジークエリを実装する方法

PHPz
リリース: 2023-04-19 11:25:36
オリジナル
815 人が閲覧しました

PHP では、2 次元配列を使用するのが非常に一般的です。しかし、2 次元配列内の特定の値をクエリする必要がある場合、ファジー クエリを簡単に実行するにはどうすればよいでしょうか?この記事では、PHPで2次元配列のファジークエリを実装する方法を紹介します。

1. 2 次元配列とは

まず、2 次元配列とは何かを理解しましょう。簡単に言えば、2 次元配列は、配列内にネストされた 1 つ以上の配列です。各配列は独自のインデックスまたはキーと値のペアを持つことができます。以下は、単純な 2 次元配列の例です。

//定义一个关联型二维数组
$student = array(
    array('name' => '小明', 'age' => 18, 'gender' => '男'),
    array('name' => '小红', 'age' => 17, 'gender' => '女'),
    array('name' => '小刚', 'age' => 19, 'gender' => '男')
);
ログイン後にコピー

2. 2 次元配列ファジー クエリを実装します。

これで、クエリが必要であると仮定して、2 次元配列ができました。以下のすべての年齢 18 歳の学生にとって、配列全体を直接走査するのは非常に面倒なはずです。現時点では、PHP の array_filter() 関数を使用してファジー クエリを実行できます。

array_filter() 関数は、指定されたコールバック関数を配列内の各要素に適用し、戻り結果が true である要素で新しい配列を形成します。コールバック関数を使用して、現在の要素が条件を満たしているかどうかを判断できます。以下は、array_filter() 関数を使用して 2 次元配列ファジー クエリを実装する例です。

function filterByAge($arr)
{
    return ($arr['age'] <= 18);
}

$result = array_filter($student, 'filterByAge');
print_r($result);
ログイン後にコピー

この例では、filterByAge という名前のコールバック関数を定義します。この関数は、生徒の年齢が低い場合に返されます。 18 歳以上の学生の年齢に関する情報。最後に、array_filter()関数を使用して、2次元配列から条件を満たす生徒情報を絞り込み、結果を画面に出力します。

3. 2 次元配列のファジー クエリを最適化する

上記の例では、array_filter() 関数を使用してファジー クエリを実行する方法を示していますが、データ量が大きい場合、この方法は非常に遅くなります。別の方法で最適化することもできます。

$search_age = 18;
$result = array_filter($student, function ($arr) use ($search_age) {
    return ($arr['age'] <= $search_age);
});
print_r($result);
ログイン後にコピー

この例では、filterByAge という名前の関数の代わりに匿名関数を使用します。さらに、 use キーワードを使用して $search_age 変数を匿名関数に渡しました。これは少し複雑になる可能性がありますが、このアプローチによりクエリを高速化できます。

4. 概要

PHP では、2 次元配列の使用が非常に一般的です。 2 次元配列内の限定された情報をクエリする必要がある場合、array_filter() 関数を使用してファジー クエリを実行できます。匿名関数と use キーワードを使用するとクエリ速度が向上しますが、コードが若干複雑になる可能性があります。この記事が、PHP で 2 次元配列のファジー クエリを実装する方法を理解するのに役立つことを願っています。

以上がPHPで2次元配列のファジークエリを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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