tengo una matriz generada dinámicamente los nombres de archivo, vamos a decir que se ve algo como esto:forma eficaz de eliminar varios elementos de matriz PHP
$files = array("a-file","b-file","meta-file-1", "meta-file-2", "z-file");
Tengo un par de nombres de archivo específicos que quiero descartado de la matriz :
$exclude_file_1 = "meta-file-1";
$exclude_file_2 = "meta-file-2";
Por lo tanto, siempre sabré los valores de los elementos que quiero descartada, pero no las teclas.
Actualmente estoy mirando un par de maneras de hacer esto. Una forma , utilizando array_filter y una función personalizada:
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"));
Otra forma, using array_keys and unset:
$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);
Ambas formas producen el resultado deseado.
estoy preguntando cuál sería el más eficiente (y por qué)?
¿O tal vez hay otra forma más eficiente de hacer esto?
Como tal vez hay una manera de tener múltiples valores de búsqueda en la función array_search?
Hola Feanne - no hay necesidad de cambiar el título una vez que haya encontrado una respuesta aceptable. StackOverflow se encarga de todo lo que una vez que se pulsa el registro de entrada, marca verde :) –
Destaca, gracias :) @MikeB – Feanne