Insertar/añadir un elemento en un array en una posición epecífica con array_splice()[php]
- Detalles
- Categoría: Programación
- Última actualización el Viernes, 07 Octubre 2011 23:34
- Escrito por cybnet
- Visto: 3325
En php podemos encontrar e identificar la función que necesitemos para trabajar arrays buscando en el nombre de la función, el cuál suele ser bastante descriptivo de lo que hace la función. ¿Pero si necesitas insertar un elemento en un array en una posición específica? La respuesta es array_splice():
- Sintaxis: array_splice (array &$input , int $offset [, int $length = 0 [, mixed $replacement ]])
array_splice() es una función php que elimina del array de entrada los elementos especificados por el parámetrooffset y length y los reemplaza por los datos dados en replacement si este parámetro se ha especificado. Ten en cuenta que no se mantiene el índice numérico del array original y que si el parámetro replacement no es un array se convertirá a un array por lo que se puede obtener un resultado que no es el que buscamos si se usa un objeto o valor nulo como parámetro replacement.
Los parámetros de array_splice()
- input: Es el array de entrada
- offset: Es un parámetro tipo int. Si es positivo, se comenzará a eliminar la parte del array contando las posiciones especificadas en offset desde el inicio del array. Si offset es negativo se comenzará a contar desde el final del array.
- length: Parámetro tipo int opcional. Si se omite este parámetro se eliminará toda la parte del array desdeoffset hasta el final del array. Si length es positivo se indica el número de elementos a eliminar desdeoffset. Si es negativo, se parará de elminar elementos del array cuando queden el número de elementos especificados en length para llegar al final del array. Un truco: si especificas un replacement y quieres eliminar todos los elementos desde offset hasta el final del arrray puedes usar como valor de lenghtcount($input) (siendo $input el array de entrada).
- replacement: Parámetro tipo array opcional. Si se especifica, los elementos eliminados serán reemplazados con los elementos de este array. Si los parámetros offset y length son tales que no se elimina ningún elemento, los elementos de replacement serán insertados en el lugar especificado poroffset. Y esto es lo que no interesa en este artículo. Veamos como usar array_splice() para insertar un elemento en una posición determinada de una array.
Como utilizar array_splice() para insertar un elemento en una posición específica de un array
Sencillamente usa array_splice() del siguiente modo:
array_splice ($array_entrada , $posicion_a_insertar, 0, $elemento_a_insertar)
Algunos ejemplos de uso de array_splice():
<?php
$thearray = array("rojo", "verde", "azul", "amarillo");
array_splice($thearray, 2);
// $thearray ahora es array("rojo", "verde")
$thearray = array("rojo", "verde", "azul", "amarillo");
array_splice($thearray, 1, -1);
// $thearray ahora es array("rojo", "amarillo")
$thearray = array("rojo", "verde", "azul", "amarillo");
array_splice($input, 1, count($input), "violeta");
// $thearray ahora es array("rojo", "violeta")
$thearray = array("rojo", "verde", "azul", "amarillo");
array_splice($thearray, -1, 1, array("negro", "violeta"));
// $thearray ahora es array("rojo", "verde", "azul", "negro", "violeta")
//esta es la que nos interesa para insertar elemento en posicion determinada
$thearray = array("rojo", "verde", "azul", "amarillo");
array_splice($thearray, 3, 0, "violeta");
// $thearray ahora es array("rojo", "verde", "azul", "violeta", "amarillo");
?> 






Perfil
Artículos
RSS