solucion - PHP elimina el primer índice de una matriz y vuelve a indexar
notice undefined index nombre in (5)
Tengo una matriz como Array
(
[0] => A
[2] => B
[4] => C
[6] => D
)
Quiero eliminar el primer elemento y luego volver a indexar la matriz para obtener la salida
(
[0] => B
[1] => C
[2] => D
)
¿Qué función de PHP necesito usar?
Actualizar
La matriz de entrada es
Array
(
[0] => Array
(
[0] => Some Unwanted text
[1] => You crazyy
)
[2] => Array
(
[0] => My belowed text
[1] => You crazyy
)
[10] => Array
(
[0] => My loved quote
[1] => You crazyy
)
)
Y la salida debería ser como
Array
(
[0] => Array
(
[0] => My belowed text
[1] => You crazyy
)
[1] => Array
(
[0] => My loved quote
[1] => You crazyy
)
)
Con array_splice.
http://www.php.net/manual/en/function.array-splice.php
php > print_r($input); Array ( [0] => A [2] => B [4] => C [6] => D ) php > array_splice($input, 0, 1); php > print_r($input); Array ( [0] => B [1] => C [2] => D )
Puedes cortar la matriz tantos índices como quieras
$newArray = array_splice($oldArray, $startIndex, $lengthToSlice);
podemos hacerlo con array_shift()
que eliminará el 1er índice de la matriz y después usar array_values()
que volverá a indexar los valores de la matriz, ya que no obtuve la respuesta de @ User123, pruebe debajo de uno:
<?php
$array = array(
0 => "A",
2 => "B",
4 => "C",
6 => "D"
);
array_shift($array);
$array = array_values($array);
echo "<pre>";
print_r($array);
Salida: verifique el resultado aquí https://eval.in/837709
Array
(
[0] => B
[1] => C
[2] => D
)
Lo mismo para su matriz de entrada actualizada
<?php
$array = array(
0 => array(
0 => "Some Unwanted text",
1 => "You crazyy"
),
2 => array(
0 => "My belowed text",
1 => "You crazyy"
),
10 => array(
0 => "My loved quote",
1 => "You crazyy"
)
);
array_shift($array);
$array = array_values($array);
echo "<pre>";
print_r($array);
Salida: verifique el resultado aquí https://eval.in/837711
Array
(
[0] => Array
(
[0] => My belowed text
[1] => You crazyy
)
[1] => Array
(
[0] => My loved quote
[1] => You crazyy
)
)
$array=array(
0 => ''A'',
2 => ''B'',
4 => ''C'',
6 => ''D''
);
unset($array[0]);
$array = array_values($array);
print_r($array);
Esta es también otra solución a este problema usando unset
Salida:
Array
(
[0] => B
[1] => C
[2] => D
)