Eliminar por clave en array NO asociativo
$miArrayNoAsociativo[0]="A";
$miArrayNoAsociativo[1]="B";
$miArrayNoAsociativo[2]="C";
unset($miArrayNoAsociativo[0]);
//He eliminado "A", resultado (1=>"B",2=>"C");
unset($miArrayNoAsociativo[2]);
//He eliminado "C", resultado (1=>"B");
//Normalizar el array
$miArrayNoAsociativo = array_values($miArrayNoAsociativo);
//resultado (0=>"B");
Otra opción es utilizar array_splice directamente con cada elemento a eliminar, que provoca la eliminación inmediata de la posición del array y su normalización. Para eliminar los mismos elementos en este caso, hacemos:
$miArrayNoAsociativo[0]="A";
$miArrayNoAsociativo[1]="B";
$miArrayNoAsociativo[2]="C";
//Indicamos el array de dónde eliminar, la posición,
// y el 1 es para que sólo elimine esa posición
array_splice($miArrayNoAsociativo, 0, 1);
//resultado (0=>"B",1=>"C");
array_splice($miArrayNoAsociativo, 1, 1);
//resultado (0=>"B");
Eliminar por clave en array asociativo
Para este tipo de arrays, utilizamos unset:
$miArrayAsociativo["a"]="A";
$miArrayAsociativo["b"]="B";
$miArrayAsociativo["c"]="C";
unset($miArrayAsociativo["a"]);
//He eliminado "A", resultado ("b"=>"B","c"=>"C");
unset($miArrayAsociativo["c"]);
//He eliminado "C", resultado ("b"=>"B");
Eliminar por valor en array NO asociativo
$miArrayNoAsociativo[0]="A";
$miArrayNoAsociativo[1]="B";
$miArrayNoAsociativo[2]="C";
$posicionAEliminar = array_search("B",$miArrayNoAsociativo,false);
array_splice($miArrayNoAsociativo, $posicionAEliminar, 1);
//resultado (0=>"A",1=>"C");
Eliminar por valor en array asociativo
$miArrayAsociativo["a"]="A";
$miArrayAsociativo["b"]="B";
$miArrayAsociativo["c"]="C";
$posicionAEliminar = array_search("B",$miArrayAsociativo,false);
array_splice($miArrayAsociativo, $posicionAEliminar, 1);
//resultado ("a"=>"A","c"=>"C");