PHP開発では、アレイは非常に一般的に使用されるデータ構造です。アレイを動作させる場合、null値の削除、特定の条件を満たす要素を保持するなど、アレイをフィルタリングする必要があることがよくあります。Array_filter ()関数は、これに特化した非常に実用的なツールです。
この記事では、 Array_Filter()の基本的な使用法、パラメーターの意味、およびいくつかの一般的な使用法シナリオを詳細に説明し、この関数の実際のアプリケーションをすばやく習得するのに役立ちます。
array_filter()は、phpの組み込み関数の1つです。その目的は、コールバック関数を使用して配列内の各要素をフィルタリングし、返品値を持つ要素のみを真に残すことです。その構文は次のとおりです。
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$配列:フィルターする元の配列。
$ callback (オプション):要素が保持されているかどうかを判断するために使用されるコールバック関数。 nullの場合、デフォルトの削除値はfalse 、 null 、empty string '' 、number 0、empty array []およびその他の「false値」です。
$モード(PHP 7.4+):コールバック関数に渡されたコンテンツが値、キー、またはキー値ペアであるかどうかを指定します。
これは、フォームデータや構成アイテムなどのクリーニングに適している最も一般的な方法です。
$data = ["apple", "", null, 0, "banana", false];
$filtered = array_filter($data);
print_r($filtered);
出力結果:
Array
(
[0] => apple
[4] => banana
)
コールバック関数が渡されない場合、 array_filter()はデフォルトで「false値」を削除します。
たとえば、アレイで長さが5を超える文字列のみを保持します。
$words = ["apple", "strawberry", "banana", "kiwi"];
$filtered = array_filter($words, function($word) {
return strlen($word) > 5;
});
print_r($filtered);
出力:
Array
(
[1] => strawberry
[2] => banana
)
PHP 7.4から始めて、3番目のパラメーター$モードを介してフィルタリングコンテンツを制御できます。
$data = [
'a' => 100,
'b' => 200,
'x' => 300,
];
$filtered = array_filter($data, function($key) {
return $key === 'x';
}, ARRAY_FILTER_USE_KEY);
print_r($filtered);
出力:
Array
(
[x] => 300
)
$_POST = [
'username' => 'alice',
'email' => '',
'age' => null,
];
$clean_data = array_filter($_POST);
これにより、ヌルフィールドをすばやく削除でき、有効なデータのみが保持されます。
$users = [
['name' => 'Tom', 'active' => true],
['name' => 'Jerry', 'active' => false],
['name' => 'Spike', 'active' => true],
];
$active_users = array_filter($users, function($user) {
return $user['active'];
});
print_r($active_users);
$urls = [
'https://m66.net/home',
'invalid-url',
'http://m66.net/contact',
'',
];
$valid_urls = array_filter($urls, function($url) {
return filter_var($url, FILTER_VALIDATE_URL);
});
print_r($valid_urls);
array_filter()を使用した後、元の配列のキー名はリセットされません(リセットする必要がある場合は、 array_values()で使用できます)。
KeyNameでフィルタリングする必要がある場合は、PHPバージョン> = 7.4を確認し、 array_filter_use_keyを使用してください。
コールバック関数は、要素が保持されているかどうかを判断するためにTrueまたはfalsを返す必要があります。