PHPでは、 array_filter()は、配列内の要素をフィルタリングするために使用される非常に一般的な配列処理関数です。 array_filter()関数は2つのパラメーターを受け入れることができます。最初のパラメーターは配列、2番目はコールバック関数(オプション)です。コールバック関数が提供されていない場合、デフォルトの動作が使用されます。
array_filter(array $array, callable $callback = null, int $mode = 0): array
$配列:保留中の配列。
$ callback :各配列要素のコールバック関数。コールバック関数は、要素が保持されているかどうかを判断するためにTrueまたはfalsを返す必要があります。
$モード:オプションパラメーターフィルタリング方法を指定するには、デフォルト値は0です。
コールバック関数が提供されていない場合、 array_filter()はデフォルトの動作を使用します。
array_filter()がコールバック関数を受信しない場合、デフォルトのフィルタリング動作を自動的に使用します。配列内のすべての「false値」を削除します。 PHPには、「誤った値」には次のものが含まれます。
間違い
ヌル
0 (整数0)
0.0 (フローティングポイント番号0)
'' (空の文字列)
'0' (string '0')
空の配列
これらの誤った値のいずれかが配列から削除され、真の値と見なされる要素のみが保持されます。
このような配列があるとします。
$array = [0, 1, false, 2, null, 3, '', '0', 4];
コールバック関数を渡さずにarray_filter()を呼び出す場合:
$result = array_filter($array);
print_r($result);
出力は次のとおりです。
Array
(
[1] => 1
[3] => 2
[5] => 3
[8] => 4
)
ご覧のとおり、すべての「偽値」が削除されており、有効な要素のみが配列に残されています。
このデフォルトの動作は、特に無効なデータを削除する必要がある配列を扱う場合に非常に便利です。たとえば、null値、0、またはnullを含む可能性のあるユーザーフォームからデータが表示されるとします。 array_filter()デフォルトの動作を使用して、これらの無効なデータをすばやくクリアし、有効な値を保持します。
array_filter()がコールバック関数を提供しない場合、デフォルトで配列から「false値」を削除します。
このデフォルトの動作は、特に不完全または無効な入力を処理する場合、開発者が不要なデータを簡単に除外するのに役立ちます。
その他のメモ:
カスタムルールに基づいて配列をフィルタリングする場合は、デフォルトの動作に依存する代わりに、コールバック関数を渡すことができます。
また、 array_filter_use_keyまたはarray_filter_use_use_bothパラメーターを使用して、コールバック関数の配列のキーと値に同時にアクセスすることもできます。