tengo una matriz que puede contener teclas numéricas o asociativas, o ambos:Cómo eliminar los valores de una matriz, mientras que la renumeración de teclas numéricas
$x = array('a', 'b', 'c', 'foo' => 'bar', 'd', 'e');
print_r($x);
/*(
[0] => a
[1] => b
[2] => c
[foo] => bar
[3] => d
[4] => e
)*/
Quiero ser capaz de eliminar un elemento de la matriz, renumeración las teclas no asociativos para mantenerlos secuencial:
$x = remove($x, "c");
print_r($x);
/* desired output:
(
[0] => a
[1] => b
[foo] => bar
[2] => d
[3] => e
)*/
Encontrar el elemento derecho a eliminar no es un problema, son las claves que son el problema. unset
no vuelve a numerar las claves, y array_splice
funciona en un offset, en lugar de una clave (es decir: tomar $ x del primer ejemplo, array_splice($x, 3, 1)
eliminaría el elemento "bar" en lugar del elemento "d").
Esto eliminará todos los no - teclas numéricas. Por favor, lea la pregunta original nuevamente. – nickf