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
?>
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/>";
}
?>
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"
?>
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."]";
?>
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/>";
?>
Nota: en caso de buscar una cadena de texto la comparación se realizará diferenciando entre mayúsculas y minúsculas.

Vea también: [ in_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
?>
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 );
?>
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 );
?>

Vea también: [ array_push() ] - [ array_unshift() ] - [ array_splice() ]
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"
?>
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 );
?>
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 );
?>
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
?>

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