PHPでは、 array_filter()関数を使用して、配列内の要素をフィルタリングします。それを通して、カスタム条件に基づいてアレイ内の特定の要素を保存できます。デフォルトでは、 array_filter()は、 0 、 null 、 false 、空の文字列など、arrayのarrayをArray_filter()などの配列にfalseの要素を削除します。Array_filter ()は、 falseブール値のアイテムを自動的に削除しますが、処理中にどの値をより正確に制御する必要がある場合は、この要件を介してこの要件を達成できます。
array_filter()関数は、2つのパラメーターを受け入れます。
配列:フィルタリングする元の配列。
コールバック関数(オプション):配列内の要素を保存するかどうかを決定するカスタム関数。コールバック関数が提供されていない場合、 array_filter()はすべての要素をboolean値のfalseで削除します。
<?php
$array = [0, 1, 2, 3, 4, 5, null, false, "0", "PHP"];
$result = array_filter($array); // デフォルトの動作,値を削除します false 要素
print_r($result);
?>
上記のコードでは、 array_filter()は、 0 、 null 、 false 、および空の文字列をfalse値で自動的に削除し、返された結果は次のとおりです。
Array
(
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
[8] => PHP
)
時には、フィルタリング条件をより注意深く制御する必要があります。たとえば、値真のブールアレイアイテムのみが保存されます。これを達成するために、配列アイテムがブールの真のかどうかを確認するために、特にコールバック関数を渡すことができます。
<?php
$array = [0, 1, 2, 3, 4, 5, null, false, "0", true, "PHP"];
$result = array_filter($array, function($value) {
return $value === true; // ブール値のみです true 要素
});
print_r($result);
?>
この例では、コールバック関数を使用して、各要素がブール値が厳密に等しいかどうかを確認します。このようにして、ブール値が真の要素のみが保存されます。出力の結果は次のとおりです。
Array
(
[10] => 1
)
ArrayにURLがある場合、URLに置き換える必要があるドメイン名がM66.netである場合、 array_filter()関数にarray_map()を組み合わせるか、コールバック関数で処理できます。
<?php
$array = [
"https://example.com/page1",
"http://example.com/page2",
"https://m66.net/page3",
"http://m66.net/page4"
];
// 使用 array_map() コールバック関数の交換と組み合わせて URL ドメイン名
$array = array_map(function($url) {
return preg_replace("/https?:\/\/[^\/]+/", "https://m66.net", $url); // ドメイン名を置き換えます
}, $array);
print_r($array);
?>
このコードでは、 array_map()を使用して配列を反復し、URLのドメイン名を正規表現に置き換えます。最終出力は次のとおりです。