PHP では、配列は非常に一般的なデータ構造です。配列内の要素の位置を検索したり、配列内の特定の要素が占める位置範囲を検索したりするなど、配列内の特定の値に基づいてクエリを実行する必要があることがよくあります。この記事では、配列に基づいてクエリを実行する方法を紹介します。
1. 配列内の要素の位置を見つける
PHP では、array_search() 関数を使用して、配列内の指定された要素の位置を見つけることができます。この関数は、検索する要素と配列の 2 つのパラメーターを受け入れます。指定された要素が見つかった場合は、配列内の要素のキー名が返され、それ以外の場合は false が返されます。
たとえば、配列 $numbers = array(1,2,3,4,5,6,7,8,9); があり、その中の数字 5 の位置を見つけたいとします。次のコードを使用できます:
$key = array_search(5, $numbers);
echo $key; // 出力 4
2. すべて検索します。配列内の指定された要素 Position
配列内に重複する要素がある場合、配列内のこれらの要素のすべての位置を見つける必要がある場合があります。 PHP は、配列内の指定された要素のすべてのキーを返すことができる array_keys() 関数を提供します。
以下は、配列 $fruits = array("apple","banana","orange","apple","orange","grape"); があると仮定した場合の例です。配列内のすべての「オレンジ」の位置を確認するには、次のコードを使用できます:
$keys = array_keys($fruits, "orange");
print_r($keys ); // 出力配列 ( [0] => 2 [1] => 4 )
このコードは、配列内の「orange」のすべてのキー名を含む配列を出力します。
3. 2 次元配列内の要素の位置を確認する
1 次元配列に加えて、PHP は 2 次元配列もサポートしています。 2 次元配列内の要素の位置を見つけたい場合は、別の方法を使用する必要があります。配列全体を反復処理して、各要素が要件を満たしているかどうかを確認できます。以下はサンプル コードです:
$users = array(
array("name" => "Tom", "age" => 20),
array("name" = > "ジェリー", "年齢" => 25),
array("名前" => "マイク", "年齢" => 30)
);
function findUser($users, $name) {
foreach ($users as $key => $user) {
if ($user["name"] == $name) { return $key; }
}
return false;
}
$key = findUser($users, "Jerry");
echo $key; // 出力 1
このコードは、「Jerry」という名前の要素のキー名を出力します。配列。
4. 2 次元配列で条件を満たすすべての要素を検索する
2 次元配列で条件を満たすすべての要素を検索する場合は、 array_filter() 関数。この関数は、フィルタリングされる配列とコールバック関数の 2 つのパラメータを受け入れます。コールバック関数は、現在の要素が要件を満たしているかどうかを示すために true または false を返す必要があります。以下はサンプル コードです:
$users = array(
array("name" => "Tom", "age" => 20),
array("name" = > "ジェリー", "年齢" => 25),
array("名前" => "マイク", "年齢" => 30),
array("名前" => ; "Alice", "age" => 20)
);
function findUsers($users, $age) {
return array_filter($users, function($user) use ( $ age) {
return $user["age"] == $age;
});
}
$matchingUsers = findUsers($users, 20);
print_r($matchingUsers);
このコードは、年齢が 20 歳であるすべての要素を出力します。
概要
PHP では、いくつかの組み込み関数を使用して、配列に基づいてクエリを実行できます。 array_search()、array_keys()、および array_filter() は最も一般的に使用される関数であり、ほとんどの状況のニーズを満たすことができます。多次元配列内の要素を検索する必要がある場合、それを実現するためにトラバーサル コードを自分で記述する必要がある場合があります。
以上がPHPで配列に基づいてクエリを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。