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 サイトの他の関連記事を参照してください。