動的に生成されたファイル名の配列があります。たとえば、次のようになります。
$files = array("a-file","b-file","meta-file-1", "meta-file-2", "z-file");
配列から破棄したい特定のファイル名がいくつかあります。
$exclude_file_1 = "meta-file-1";
$exclude_file_2 = "meta-file-2";
したがって、破棄したい要素の値は常にわかりますが、キーはわかりません。
現在、私はこれを行うためのいくつかの方法を検討しています。array_filter とカスタム関数を使用する 1 つの方法:
function excludefiles($v)
{
if ($v === $GLOBALS['exclude_file_1'] || $v === $GLOBALS['exclude_file_2'])
{
return false;
}
return true;
}
$files = array_values(array_filter($files,"excludefiles"));
$exclude_files_keys = array(array_search($exclude_file_1,$files),array_search($exclude_file_2,$files));
foreach ($exclude_files_keys as $exclude_files_key)
{
unset($files[$exclude_files_key]);
}
$files = array_values($page_file_paths);
どちらの方法でも、目的の結果が得られます。
どちらがより効率的か (そしてその理由) を考えているだけです。
それとも、これを行うための別のより効率的な方法があるのでしょうか?
array_search 関数で複数の検索値を持つ方法があるかもしれませんか?