Otra opción
y sin usar unset(), por si os interesa, es con la función
array_filter() (supongo que habrán más formas de hacerlo):
Código PHP:
<?php
$array[0] = "jose"; // Eliminarlo
$array[1] = "mateo";
$array[2] = "manuel";
$array[3] = "pepon"; // Eliminarlo
$array[4] = "kata";
function filtrar($elemActual) {
return ($elemActual != "jose" && $elemActual != "pepon");
}
$array = array_filter($array, "filtrar");
$array = array_values($array);
print_r($array);
?>
array_filter() va aplicando una función callback de filtro llamada
filtrar() a cada elemento del array uno por uno. Si la condición del filtro es 1 o true, vuelve a almacenar el valor en su posición. Si es 0 o false, lo elimina (pero no elimina la posición). Como sigue manteniendo los mismos índices, se usa al igual que en la solución anterior la función array_values() que reagrupa los elementos con valor.