開発プロセス中、私たちはしばしばホワイトリストに遭遇する状況に遭遇します。つまり、特定のアイテムが合格し、ホワイトリストにないアイテムを除外する必要があります。 PHPでは、 array_diff()関数を使用して、指定されたアイテムをホワイトリストからエレガントに除外し、コードのシンプルさと読みやすさを向上させることができます。
array_diff()は、元の配列内のすべての要素で構成される配列を返す非常に便利な関数ですが、他の1つ以上の配列のアイテムと同じアイテムを除外します。ホワイトリストのシナリオでは、通常、 array_diff()を使用して、許可されたアイテム(ホワイトリスト)から不要なアイテムを除外します。
複数のURLを含むホワイトリストアレイがあり、そこから特定のURLを除外したいとします。
<?php
// ホワイトリストアレイ
$whitelist = [
"http://m66.net/page1",
"http://m66.net/page2",
"http://m66.net/page3",
"http://m66.net/page4",
];
// 除外する必要があります URL 配列
$excludeUrls = [
"http://m66.net/page2",
"http://m66.net/page4",
];
// 使用 array_diff() 指定された除外 URL
$filteredWhitelist = array_diff($whitelist, $excludeUrls);
// 出力除外ホワイトリスト
print_r($filteredWhitelist);
?>
出力:
Array
(
[0] => http://m66.net/page1
[2] => http://m66.net/page3
)
ホワイトリストの定義:最初に、複数のURLS $ Whitelistを含むホワイトリストアレイを定義します。
除外されたURL配列:次に、除外したいURLを含む配列$ excludurlsを定義します。
Array_diff()を使用して指定されたアイテムを除外します。Array_diff ()関数を呼び出すことにより、 $ whitelistからすべてのURLを$ excludeurrsで除外し、除外したホワイトリストである新しいarray $ filteredWhitelistを取得できます。
出力の結果:最後に、 print_r()関数を使用して、除外されたホワイトリストを出力します。
array_diff()を使用する最大の利点の1つは、コードをより簡潔で読みやすくすることです。より大きな配列から複数のアイテムを除外し、アレイを1つずつ手動で通過する必要があるとし、要素を排除すると非常に面倒に見えます。 array_diff()は、このタスクを単純なコード行で完了し、コードを理解し、維持しやすくすることができます。
array_diff()は、キーではなく値に基づいて配列内の要素を比較します。したがって、キー価値のペアを扱う場合、キーを保持する必要があるか、連想配列に変換する必要があるかを検討する必要があります。
array_diff()新しい配列を返し、元の配列は変更されません。配列を所定の位置に変更する必要がある場合は、結果を元の配列に再割り当てできます。