ホームページ  >  記事  >  バックエンド開発  >  PHP の array_filter() 関数の使用法の概要

PHP の array_filter() 関数の使用法の概要

王林
王林オリジナル
2023-06-27 11:50:453397ブラウズ

PHP プログラミングでは、配列は非常に一般的なデータ型です。配列のフィルタリングとフィルタリングは、一般的な操作の 1 つです。このとき、PHP が提供する配列関数 array_filter() を使用できます。この記事では、この機能の使用方法を紹介し、デモンストレーションします。

1. array_filter() 関数の基本的な使用法

array_filter() 関数の機能は、配列をフィルター処理することです。基本的な構文は次のとおりです:

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )

このうち、$array パラメータはスクリーニングおよびフィルタリングの対象となる配列であり、$callback パラメータはオプションのパラメータであり、各要素を判定するコールバック関数を指定するために使用されます。配列。条件を満たす要素は保持され、条件を満たさない要素は削除されます。$flag パラメータもオプションのパラメータで、フィルタリング方法のルールを指定するために使用されます。ルールは合計 4 つあります。 、つまり:

  • ARRAY_FILTER_USE_KEY - フィルタリングとフィルタリングでのキー名の使用を指定します;
  • ARRAY_FILTER_USE_BOTH - フィルタリングとフィルタリングでのキー名とキー値の使用を指定します;
  • ARRAY_FILTER_USE_VALUE - フィルタリングとフィルタリングにキー値の使用を指定します;
  • 0 - フィルタリングとキー値を使用したフィルタリングを指定します (デフォルト オプション)。

次にパラメータを詳しく紹介します。

2. $array パラメータの詳細説明

このパラメータは必須パラメータであり、スクリーニングおよびフィルタリングされる配列を表します。具体的な使用法は次のとおりです。

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr);
print_r($newArr); //输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

上記の例では、$arr はスクリーニングおよびフィルタリングされる元の配列であり、$newArr は array_filter() 関数による処理後に取得される新しい配列です。 $callback パラメータが渡されない場合、$array 内の「false」以外の要素はすべて保持され、出力結果は元の配列と一致します。

3. $callback パラメータの詳細説明

$callback パラメータはオプションです。このパラメータが指定されていない場合、関数はデフォルトでフィルタリングとフィルタリングに次のルールを使用します:

  • $array 内のすべての「false」以外の要素を保持します;
  • $array 内のすべての「false」要素を削除します;
  • 保持された要素を並べ替えて、新しいアレイ。

$callback パラメーターを指定する場合、$callback は、配列内の各要素がスクリーニングまたはフィルターの要件を満たしているかどうかを判断するために使用されるコールバック関数である必要があります。

コールバック関数は、処理対象の要素であるパラメータを受け取り、値を返す必要があります。戻り値が「true」の場合、要素が要件を満たしているため、保持する必要があることを意味します。戻り値が「false」の場合、要素が要件を満たしていないため、削除する必要があることを意味します。

コールバック関数の基本的な構文は次のとおりです:

function callback_function($element) {
   // 进行一些处理,然后返回true或false
}

次に例を示します:

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr, function($element) {
   return $element > 2;
});
print_r($newArr); //输出:Array ( [2] => 3 [3] => 4 [4] => 5 )

上の例では、コールバック関数を渡します。は、配列内の各要素が 2 より大きいかどうかを判断し、2 より大きい場合は要素を保持し、そうでない場合は要素を削除するために使用されます。処理後、要素 3、4、および 5 のみが保持されます。

4. $flag パラメータの詳細説明

$flag パラメータもオプションのパラメータで、フィルタリング方法のルールを指定するために使用されます。このパラメータが指定されていない場合、デフォルトで「キーと値のフィルタリング」ルールが使用されます。 4 つのルールを以下に紹介します。

  1. $flag = ARRAY_FILTER_USE_KEY

キー名を使用してフィルター処理します。以下に例を示します。

$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$newArr = array_filter($arr, function($key) {
   return $key == 'a' || $key == 'c';
}, ARRAY_FILTER_USE_KEY);
print_r($newArr); //输出:Array ( [a] => 1 [c] => 3 )

上の例では、$flag パラメータが ARRAY_FILTER_USE_KEY に設定されています。これは、フィルタリングとフィルタリングにキー名のみが使用されることを意味します。コールバック関数は、キー名「a」および「c」の要素を保持し、新しい配列を返すことができます。

  1. $flag = ARRAY_FILTER_USE_BOTH

キー名とキー値を使用してフィルター処理を行います。以下は例です:

$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4);
$newArr = array_filter($arr, function($key, $value) {
   return $key == 'a' && $value == 1;
}, ARRAY_FILTER_USE_BOTH);
print_r($newArr); //输出:Array ( [a] => 1 )

上の例では、$flag パラメーターは ARRAY_FILTER_USE_BOTH に設定されています。これは、キー名とキー値の両方をフィルタリングとフィルタリングに使用する必要があることを意味します。コールバック関数は、キー名「a」、キー値 1 の要素を保持し、新しい配列を返すことができます。

  1. $flag = ARRAY_FILTER_USE_VALUE

フィルタリングとフィルタリングにキー値を使用します。以下は例です:

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr, function($value) {
   return $value % 2 == 0;
}, ARRAY_FILTER_USE_VALUE);
print_r($newArr); //输出:Array ( [1] => 2 [3] => 4 )

上記の例では、$flag パラメータが ARRAY_FILTER_USE_VALUE に設定されており、フィルタリングとフィルタリングにキー値のみが使用されることを示しています。コールバック関数は偶数番号の要素を保持し、新しい配列を返すことができます。

  1. $flag = 0

フィルタリングおよびフィルタリングにキー値を使用することを指定します (デフォルト オプション)。以下は例です:

$arr = array(1, 2, 3, 4, 5);
$newArr = array_filter($arr, function($value) {
   return $value > 2;
});
print_r($newArr); //输出:Array ( [2] => 3 [3] => 4 [4] => 5 )

上の例では、$flag パラメータが設定されていません。これは、デフォルトでフィルタリングとフィルタリングにキー値が使用されることを意味します。コールバック関数は 2 より大きい要素を保持し、新しい配列を返すことができます。

5. 概要

array_filter() 関数は、PHP の非常に一般的で実用的な配列関数であり、配列のフィルター処理に使用できます。この記事では、この関数の基本的な使用法とパラメーターの説明の詳細な紹介とデモンストレーションを提供します。この記事を読んでこの関数の基本原理と使い方をマスターし、実際のプログラミングで柔軟に使いこなせるようになれば幸いです。

以上がPHP の array_filter() 関数の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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