PHP プログラミングでは、配列は最も一般的で重要なデータ型の 1 つです。 PHP の関数ライブラリには多数の配列処理関数も用意されており、重要な関数の 1 つが array_filter()
です。この記事では、array_filter()
関数の一般的な使用法と実装原則について説明します。
array_filter()
この関数の主な機能は、配列内の要素をフィルタリングすることです。これを使用する場合、最初のパラメーターとして配列を渡し、オプションでフィルター要素に 2 番目のパラメーターのコールバック関数を渡す必要があります。コールバック関数はオプションのパラメータです。渡されない場合、null
、false
、0
などのすべての「false」要素がデフォルトで除外されます。 、###''### 待って。 次は、
関数を使用して配列をフィルタリングする方法を示す簡単な例です。 <pre class='brush:php;toolbar:false;'>// 定义一个示例数组
$numbers = array(100, 2, -3, 4, 5, -6);
// 过滤回调函数,过滤掉小于等于 0 的元素
function positive($n) {
return $n > 0;
}
// 过滤数组
$filtered = array_filter($numbers, "positive");
// 打印过滤后的数组
print_r($filtered);</pre>
上の例では、
いくつかの数値要素を含む配列。また、コールバック関数 positive()
も定義します。この関数の機能は、要素の値が 0 より大きい場合は true
を返し、それ以外の場合は false
を返します。 。最後に、array_filter()
関数を呼び出し、配列 $numbers
とコールバック関数 positive()
を渡して配列をフィルターします。上記の例を実行すると、次の結果が出力されます。 <pre class='brush:php;toolbar:false;'>Array
(
[0] => 100
[1] => 2
[3] => 4
[4] => 5
)</pre>
最終的には、数値要素の正の部分のみが配列に保持され、フィルタリングに適合することがわかります。コールバック関数の条件。
コールバック関数の受け渡しに加えて、array_filter()
関数は、コールバック関数の 2 番目のパラメーターとして渡される追加パラメーターの受け渡しもサポートしています。これは、配列をフィルタリングし、配列要素の添え字を参照条件として使用する必要がある場合など、特定の状況で役立ちます。
パラメーターを使用した例を次に示します。 <pre class='brush:php;toolbar:false;'>// 定义一个示例数组
$fruits = array("apple", "banana", "cherry", "date");
// 过滤回调函数,过滤掉下标是偶数的元素
function odd_indices($value, $index) {
return $index % 2 != 0;
}
// 过滤数组,并保留下标是奇数的元素
$filtered = array_filter($fruits, "odd_indices", ARRAY_FILTER_USE_BOTH);
// 打印过滤后的数组
print_r($filtered);</pre>
上の例では、いくつかのフルーツ要素を含む $fruits
配列を定義しました。また、偶数のインデックスを持つ配列要素を除外するコールバック関数
も定義します。最後に、ARRAY_FILTER_USE_BOTH
パラメータを渡して、コールバック関数に 2 つのパラメータが必要であることを指定しました。上記の例を実行すると、次の結果が出力されます。 <pre class='brush:php;toolbar:false;'>Array
(
[1] => banana
[3] => date
)</pre>
ご覧のとおり、最終的な $filtered
配列には奇数の添字を持つ要素のみが保持され、偶数の添字を持つ要素はフィルターで除外されます。
実装原則
関数は主に配列を走査することでフィルタリングを実装します。実際のプロセスでは、コールバック関数を渡すと、array_filter()
関数は配列内の各要素に対して 1 回コールバック関数を呼び出します。コールバック関数が true
を返した場合、この要素は保持する必要があることを意味します。保持しない場合はフィルタで除外されます。 コールバック関数が null 値を返した場合、その要素も除外されるなど、注意すべき点がいくつかあります。さらに、追加のパラメーターが渡される場合、そのパラメーターはコールバック関数の 2 番目のパラメーターとしてコールバック関数に渡されます。
コールバック関数を渡さない場合、デフォルトですべての「false」要素が除外されます (例:
、
false、0)
、空の文字列など)。実装では、array_filter()
関数は、フィルター処理の前にすべての要素をブール値に変換します。変換後に要素が true
である場合、その要素は保持されることを意味し、それ以外の場合、要素はフィルターで除外されます。 array_filter()
関数の実装は単純に見えますが、配列要素をフィルタリングするための便利で強力な方法を提供します。 PHP 開発者にとって、
関数の使用法と実装原則に習熟していれば、実際の開発で非常に便利になります。
以上がPHP 関数 exploration-array_filter()の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。