Hay muchas funciones con arrays que cuando las ves en el listado de funciones crees que no las vas a usar nunca, quizá en el momento no le ves mucha utilidad, pero llega un día en el cual tienes que echar mano de ellas, esto me ha sucedido con las funciones array_shift y array_unshift, que ha llegado un día en el cual, no solo una, sino las 2 me han sido de mucha utilidad.
Array_shift
Definición:
array_shift() Quita el primer valor delarray
y lo devuelve, acortando el array
un elemento y corriendo el array hacia abajo. Todas la claves del array numéricas serán modificadas para que empieze contando desde cero mientras que los arrays con claves literales no serán modificados.
Uso:
mixed array_shift(array &$array);Array_unshift
Definición:
array_unshift() añade los elementos pasados al inicio dearray
. Observe que la lista de elementos se añade como un todo, por lo que los elementos añadidos permanecen en el mismo orden. Todas las claves numéricas del array serán modificadas empezando a contar desde cero mientras que las claves literales no se tocan.
Uso:
int array_unshift ( array &$array , mixed $value1 [, mixed $… ] );Ejemplo
Imaginemos que tenemos que obtener datos desde un fichero CSV procesarlo y escribir los datos en otro fichero CSV. Estos ficheros siempre llevan un encabezado el cual nos define el nombre de las columnas. Esta linea no nos será de mucha utilidad a la hora de procesar los datos contenidos en el fichero, pero es necesaria a la hora de escribir los datos en el otro fichero.
// $csv contiene los siguientes datos: $csv = array( array('nombre','apellido','email','usuario'), array('Yo','Mismo','mi@email.es',''), array('Tu','Tambien','tu@email.com','') ); $cabecera = array_shift($csv); // $cabecera almacenara la primera fila foreach ($csv as &$var) { // proceso el foreach por referencia para modificar los datos del array $var['usuario'] = $var['nombre'].".".$var['apellido']; //concateno el nombre y apellidos } $array_unshift($csv, $cabecera); // pongo el array con los nombres de columna al principo
+ Info:
array_shift