PHP 関数 exploration-array_filter()

WBOY
WBOYオリジナル
2023-06-20 08:01:421682ブラウズ

PHP プログラミングでは、配列は最も一般的で重要なデータ型の 1 つです。 PHP の関数ライブラリには多数の配列処理関数も用意されており、重要な関数の 1 つが array_filter() です。この記事では、array_filter() 関数の一般的な使用法と実装原則について説明します。

基本的な使用法

array_filter() この関数の主な機能は、配列内の要素をフィルタリングすることです。これを使用する場合、最初のパラメーターとして配列を渡し、オプションでフィルター要素に 2 番目のパラメーターのコールバック関数を渡す必要があります。コールバック関数はオプションのパラメータです。渡されない場合、nullfalse0 などのすべての「false」要素がデフォルトで除外されます。 、###''### 待って。 次は、

array_filter()

関数を使用して配列をフィルタリングする方法を示す簡単な例です。 <pre class='brush:php;toolbar:false;'>// 定义一个示例数组 $numbers = array(100, 2, -3, 4, 5, -6); // 过滤回调函数,过滤掉小于等于 0 的元素 function positive($n) { return $n &gt; 0; } // 过滤数组 $filtered = array_filter($numbers, &quot;positive&quot;); // 打印过滤后的数组 print_r($filtered);</pre>上の例では、

$numbers

いくつかの数値要素を含む配列。また、コールバック関数 positive() も定義します。この関数の機能は、要素の値が 0 より大きい場合は true を返し、それ以外の場合は false を返します。 。最後に、array_filter() 関数を呼び出し、配列 $numbers とコールバック関数 positive() を渡して配列をフィルターします。上記の例を実行すると、次の結果が出力されます。 <pre class='brush:php;toolbar:false;'>Array ( [0] =&gt; 100 [1] =&gt; 2 [3] =&gt; 4 [4] =&gt; 5 )</pre> 最終的には、数値要素の正の部分のみが配列に保持され、フィルタリングに適合することがわかります。コールバック関数の条件。

コールバック関数の受け渡しに加えて、array_filter() 関数は、コールバック関数の 2 番目のパラメーターとして渡される追加パラメーターの受け渡しもサポートしています。これは、配列をフィルタリングし、配列要素の添え字を参照条件として使用する必要がある場合など、特定の状況で役立ちます。

$key

パラメーターを使用した例を次に示します。 <pre class='brush:php;toolbar:false;'>// 定义一个示例数组 $fruits = array(&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;, &quot;date&quot;); // 过滤回调函数,过滤掉下标是偶数的元素 function odd_indices($value, $index) { return $index % 2 != 0; } // 过滤数组,并保留下标是奇数的元素 $filtered = array_filter($fruits, &quot;odd_indices&quot;, ARRAY_FILTER_USE_BOTH); // 打印过滤后的数组 print_r($filtered);</pre> 上の例では、いくつかのフルーツ要素を含む $fruits 配列を定義しました。また、偶数のインデックスを持つ配列要素を除外するコールバック関数

odd_indices()

も定義します。最後に、ARRAY_FILTER_USE_BOTH パラメータを渡して、コールバック関数に 2 つのパラメータが必要であることを指定しました。上記の例を実行すると、次の結果が出力されます。 <pre class='brush:php;toolbar:false;'>Array ( [1] =&gt; banana [3] =&gt; date )</pre> ご覧のとおり、最終的な $filtered 配列には奇数の添字を持つ要素のみが保持され、偶数の添字を持つ要素はフィルターで除外されます。

実装原則

array_filter()

関数がどのように実装されているかを理解することは、この関数をより適切に使用するのにも役立ちます。 PHP 実装では、

array_filter()

関数は主に配列を走査することでフィルタリングを実装します。実際のプロセスでは、コールバック関数を渡すと、array_filter() 関数は配列内の各要素に対して 1 回コールバック関数を呼び出します。コールバック関数が true を返した場合、この要素は保持する必要があることを意味します。保持しない場合はフィルタで除外されます。 コールバック関数が null 値を返した場合、その要素も除外されるなど、注意すべき点がいくつかあります。さらに、追加のパラメーターが渡される場合、そのパラメーターはコールバック関数の 2 番目のパラメーターとしてコールバック関数に渡されます。 コールバック関数を渡さない場合、デフォルトですべての「false」要素が除外されます (例:

null

false

0) 、空の文字列など)。実装では、array_filter() 関数は、フィルター処理の前にすべての要素をブール値に変換します。変換後に要素が true である場合、その要素は保持されることを意味し、それ以外の場合、要素はフィルターで除外されます。 array_filter() 関数の実装は単純に見えますが、配列要素をフィルタリングするための便利で強力な方法を提供します。 PHP 開発者にとって、

array_filter()

関数の使用法と実装原則に習熟していれば、実際の開発で非常に便利になります。

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

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