informaticaPC

Tutorial de PHP

Crear un array en PHP, insertar, borrar y recorrer elementos


Regístrate

Tus datos no serán compartidos, solo nosotros te enviaremos información y novedades

Obtener el número de elementos en un array

Para obtener el número de elementos de un array en PHP usaremos la función count():

<?php
    $aDias = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
    echo count($aDias);  // Devuelve 7
?>

Recorrer un array

Para recorrer los elementos en un array se suele usar el bucle for(), teniendo en cuenta que las posiciones o índices comienzan desde cero.

A continuación te mostramos un ejemplo en el que recorremos un array en PHP de 7 elementos, mostrando cada posición y su valor:

<?php
    $aDias = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
    $contador;

    for( $contador=0; $contador < 7; $contador++ ) {
        echo "El valor de la posición [".$contador."] es [".$aDias[$contador]."]<br/>";
    }
?>

Descargar ejemplo

Recorrer elementos de Array

Otras funciones de PHP que podemos utilizar para recorrer un array son:

  • reset(): mueve el puntero interno del array al primer elemento. Si el array está vacío devuelve false.
  • prev(): mueve el puntero interno del array al elemento anterior. Si el puntero se encontrara en el primer elemento devolvería false.
  • next(): mueve el puntero interno del array al siguiente elemento. Si el puntero se encontrara en el último elemento devolvería false
  • end(): mueve el puntero interno del array al último elemento. Si el array está vacío devuelve false.
  • current(): Devuelve el elemento actual en un array.
<?php
    $aNombres = array("Pedro", "Juan", "Roberta", "Alfredo", "Lola");

    echo "-> ".current($aNombres)."<br />"; // Devuelve: "Pedro"
    echo "-> ".next($aNombres)."<br />";    // Devuelve: "Juan"
    echo "-> ".current($aNombres)."<br />"; // Devuelve: "Juan"
    echo "-> ".prev($aNombres)."<br />";    // Devuelve: "Pedro"
    echo "-> ".end($aNombres)."<br />";     // Devuelve: "Lola"
    echo "-> ".current($aNombres)."<br />"; // Devuelve: "Lola"
?>

Descargar ejemplo

Más información

Vea también: [ reset() ] - [ prev() ] - [ next() ] - [ end() ]

Buscar datos en un array

Una vez hemos visto cómo recorrer un array en PHP, para buscar si existe un determinado un dato en él deberemos comprobar los valores guardados en cada una de sus posiciones.

En el siguiente ejemplo comprobamos si el nombre 'PEPE' existe en el array '$aDias', quedando la variable '$posicion' con un valor de '-1' si no se ha encontrado, o conteniendo la posición en la que se ha encontrado:

<?php
    $aDias = array("MARIA", "JUAN", "PEDRO", "ISABEL", "PEPE", "FERNANDO", "ROBERTO");
    $contador;
    $posicion = -1;

    for( $contador=0; $contador < count($aDias); $contador++ )
    {
        if( $aDias[$contador] == "PEPE") {
            $posicion = $contador;
            break;
        }
    }

    if( $posicion == -1 )
        echo "No se ha encontrado el nombre";
    else
        echo "PEPE está en la posición [".$encontrado."]";
?>

Descargar ejemplo

Buscar en un array

Con break forzamos el que se salga del bucle si se encuentra el dato (no será necesario continuar la búsqueda).

También podemos buscar un dato en un array usando la función de PHP in_array(), la cual devolverá true si se ha encontrado o bien false en caso contrario:

<?php
    $aColores1 = array( "color1" => "rojo", "color2" => "verde", "color3" => "azul", "color4" => "verde" );
    $aColores2 = array( 37, "Pedro", "color1" => "rojo", "color2" => "verde", "color3" => "azul" );

    if( in_array( "rojo", $aColores1 ) == true )
        echo "Se ha encontrado el valor 'rojo' en \$aColores1<br/>";

    if( in_array( "magenta", $aColores1 ) == false )
        echo "NO se ha encontrado el valor 'magenta' en \$aColores1<br/>";

    if( in_array( 37, $aColores2 ) == true )
        echo "Se ha encontrado el número 37 en \$aColores2<br/>";

    if( in_array( 85, $aColores2 ) == false )
        echo "NO se ha encontrado el número 85 en \$aColores2<br/>";
?>

Descargar ejemplo

Buscar en un array

Nota: en caso de buscar una cadena de texto la comparación se realizará diferenciando entre mayúsculas y minúsculas.

Más información

Vea también: [ in_array() ]

Insertar elementos en un array

Usaremos la función array_push() para insertar elementos al final de un array y array_unshift() para insertar elementos al principio del mismo. Estas funciones de PHP devuelven el número de elementos en el array tras la inserción.

<?php
    $aDias = array("Martes", "Miércoles", "Jueves");

    array_unshift( $aDias, "Lunes" );
    $num = array_push( $aDias, "Viernes" );

    // El array quedaría: "Lunes", "Martes", "Miércoles", "Jueves", "Viernes"
    print_r( $aDias );

    echo "<p/>".$num."<br/>";   // Devuelve 5
    echo count($aDias)."<br />";      // Devuelve 5
?>

Descargar ejemplo

Con la función print_r() mostramos los valores contenidos en las diferentes posiciones del array.

Para insertar elementos en un array disponemos también de la función de PHP array_splice(): en el segundo parámetro especificamos en qué posición insertar el elemento (recuerda que comienzan desde cero), en el tercer parámetro pondremos cero (puesto que esta función es usada también para borrar elementos en un array, como veremos más adelante) y en el cuarto parámetro indicaremos el valor que deseamos guardar en dicha posición.

<?php
    $aDias = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");

    // En la posición 2 insertamos el valor 88
    array_splice( $aDias, 2, 0, 88 );

    // El array quedaría: "Lunes", "Martes", 88, "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo";
    print_r( $aDias );
?>

Descargar ejemplo

Observa que los valores de las posiciones existentes, desde la que hemos insertado el nuevo elemento, se han desplazado a la derecha.

Como hemos comentado, se puede usar array_splice() para borrar elementos de un array, así pues podemos combinar las dos acciones: si en el tercer parámetro escribimos un número que no sea cero se insertará el elemento deseado y también se borrarán las posiciones indicadas:

<?php
    $aDias = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");

    // En la posición 2 insertamos el valor 88, y eliminamos la siguiente posición
    array_splice( $aDias, 2, 1, 88 );

    // El array quedaría: "Lunes", "Martes", 88, "Jueves", "Viernes", "Sábado", "Domingo";
    print_r( $aDias );
?>

Descargar ejemplo

Más información

Vea también: [ array_push() ] - [ array_unshift() ] - [ array_splice() ]

Borrar elementos en un array

Usando array_shift() eliminaremos el primer elemento del array, y con array_pop() el último. Ambas funciones devuelven el valor del elemento borrado:

<?php
    $aDias = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
    echo count($aDias)."<br />";  // Devuelve 7

    $primero = array_shift( $aDias );
    print_r( $aDias );			  // El array queda: "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"
    echo "<br />";

    $ultimo = array_pop( $aDias );
    print_r( $aDias );			  // El array queda: "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"
    echo "<br />";

    echo count($aDias)."<p />";	  // Devuelve 5

    echo "El primer elemento era: ".$primero."<br />";  // Devuelve "Lunes"
    echo "El último elemento era: ".$ultimo."<br />";   // Devuelve "Domingo"
?>

Descargar ejemplo

Otra función que podemos usar es array_splice(), con la que podemos eliminar un determinado número de posiciones a partir de la indicada: en el segundo parámetro indicamos a partir desde qué posición borrar (recuerda que comienzan desde cero) y en el segundo parámetro cuántos elementos deseamos eliminar (si se pone cero, no se eliminará ninguno).

<?php
    $aDias = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");

    // Desde la posición 3 borramos 2 elementos (el actual y el siguiente, las posiciones 2 y 3)
    array_splice( $aDias, 3, 2);

    // El array queda: "Lunes", "Martes", "Miércoles", "Sábado", "Domingo"
    print_r( $aDias );
?>

Descargar ejemplo

Asimismo disponemos también la función array_unique(), que devolverá un array con el resultado de eliminar valores duplicados en un array:

<?php
    $aDias = array("Lunes", "Martes", "Miércoles", "Lunes", "Miércoles");

    $resultado = array_unique( $aDias );

    // Devuelve: Array ( [0] => Lunes [1] => Martes [2] => Miércoles )
    print_r( $resultado );
?>

Descargar ejemplo

Por último, para vaciar un array lo crearemos de nuevo con el mismo nombre, o bien usando la función de PHP unset() eliminaremos el array definitivamente:

<?php
    $aDias = array("Lunes", "Martes", "Miércoles");   // Crear el array
    $aDias = array();   // Borrar todos los elementos

    unset($aDias);      // Eliminar el array de la memoria
?>
Más información

Vea también: [ array() ] - [ array_pop() ] - [ array_shift() ] - [ array_splice() ] - [ array_unique() ] - [ unset() ]

Primera página Anterior Siguiente Última página
Usamos cookies para ofrecerte una experiencia mejorada, el continuar navegando supone que aceptas su uso