Para ordenar un array disponemos de la función de PHP sort():
<?php
$aDias = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
sort( $aDias );
// El array queda: "Domingo", "Jueves", "Lunes", "Martes", "Miércoles", "Sábado", "Viernes"
print_r( $aDias );
?>
El segundo parámetro es opcional, y sirve para indicar el modo de ordenación:
- SORT_REGULAR: compara los elementos normalmente (sin cambiar el tipo de dato).
- SORT_NUMERIC: compara los elementos de forma numérica.
- SORT_STRING: compara los elementos como cadenas de texto.
- SORT_LOCALE_STRING: compara ítems como cadenas, basándose en la localización actual.
También se puede usar para ordenar números:
<?php
$aNumeros = array(10, 11, 8, 103, 99, 54);
sort( $aNumeros );
// El array queda: 8, 10, 11, 54, 99, 103
print_r( $aNumeros );
?>
Para ordenar descendentemente usaremos la función rsort():
<?php
$aDias = array("Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo");
$aNumeros = array(10, 11, 8, 103, 99, 54);
rsort( $aDias );
rsort( $aNumeros );
// El array queda: "Viernes", "Sábado", "Miércoles", "Martes", "Lunes", "Jueves", "Domingo"
print_r( $aDias );
echo "<br/>";
// El array queda: 103, 99, 54, 11, 10, 8
print_r( $aNumeros );
?>
Para ordenar arrays asociativos en PHP usaremos las funciones asort() y arsort().
Con la función de PHP array_reverse() obtendremos un array con los elementos en orden inverso (no modifica el array original):
<?php
$aDias = array("Pepe", "Ana", "Marta", "Alfredo", "Rosa");
// El array queda: "Rosa", "Alfredo", "Marta", "Ana", "Pepe"
print_r( array_reverse( $aDias ) );
?>

Vea también: [ array_reverse() ]
La función array_keys() nos devolverá un array con las claves existentes en un array asociativo.
Si indicamos un valor en el segundo parámetro, se devolverá un array con las claves o posiciones que contengan dicho valor:
<?php
$aColores1 = array( "color1" => "rojo", "color2" => "verde", "color3" => "azul", "color4" => "verde" );
$aColores2 = array( 37, "Pedro", "color1" => "rojo", "color2" => "verde", "color3" => "azul" );
// Devuelve: Array ( [0] => color1 [1] => color2 [2] => color3 [3] => color4 )
print_r( array_keys($aColores1) );
echo "<p/>";
// Devuelve: Array ( [0] => color2 [1] => color4 )
print_r( array_keys($aColores1, "verde") );
echo "<p/>";
// Devuelve: Array ( [0] => 0 [1] => 1 [2] => color1 [3] => color2 [4] => color3 )
print_r( array_keys($aColores2) );
echo "<p/>";
?>

Vea también: [ array_keys() ]
La función array_key_exists() nos será útil cuando necesitemos averiguar si un array asociativo contiene una clave:
<?php
$aColores = array( "color1" => "rojo", "color2" => "verde", "color3" => "azul" );
if( array_key_exists("color3", $aColores) == true )
echo "La clave 'color3' existe en el array asociativo.<br/>";
if( array_key_exists("color9", $aColores) == false )
echo "La clave 'color9' NO existe en el array asociativo.";
?>

Vea también: [ Crear arrays asociativos en PHP ] - [ array_key_exists() ]
La función array_merge() devuelve un array con todos los elementos de los arrays que le pasemos como parámetro:
<?php
$aDias1 = array("Lunes", "Martes", "Miércoles");
$aDias2 = array("Jueves", "Viernes", "Sábado", "Domingo");
$aDias = array_merge( $aDias1, $aDias2 );
// El array queda: "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"
print_r( $aDias );
?>
IMPORTANTE: en caso de usar arrays asociativos que tienen nombres de claves iguales, el valor de dicha clave será el del último encontrado (el array resultante no podrá tener más de una clave con el mismo nombre).
<?php
$aColores1 = array( "color1" => "rojo", "color2" => "verde", "color3" => "azul" );
$aColores2 = array( "color1" => "AMARILLO", "color4" => "celeste", "color5" => "magenta" );
$aColores = array_merge( $aColores1, $aColores2 );
// Devuelve: Array ( [color1] => AMARILLO [color2] => verde [color3] => azul [color4] => celeste [color5] => magenta )
print_r( $aColores );
?>
Observa que en ambos arrays se repite la clave 'color1', cuyo valor será el encontrado en el último array pasado como parámetro en array_merge().

Vea también: [ array_merge() ]
Si necesitamos extraer parte de un array usaremos la función de PHP array_slice(), que devuelve el número de elementos a partir de la posición especificada.
En el segundo parámetro se indica a partir de qué posición se extraerán los elementos, y en el tercer parámetro cuántos elementos se desean extraerán (si se omite este parámetro se extraerán el resto de elementos hasta el final):
<?php
$aNombres1 = array("PEPE", "ALFREDO", "ALBERTO", "CARMEN", "MARÍA", "TERESA");
$aNombres2 = array_slice( $aNombres1, 0, 3);
// Devuelve: "PEPE", "ALFREDO", "ALBERTO"
print_r( $aNombres2 );
?>

Vea también: [ array_slice() ]
La función de PHP array_diff() nos devolverá un nuevo array con los valores en el primer array pasado como parámetro que no estén también en el resto de los arrays indicados:
<?php
$aNumeros1 = array( 11, 22, 33 );
$aNumeros2 = array( 11, 33, 55);
$aColores1 = array( "color1" => "rojo", "color2" => "verde", "color3" => "azul", "color4" => "naranja" );
$aColores2 = array( "color1" => "verde", "color2" => "azul", "color3" => "amarillo" );
$aColores3 = array( "color1" => "rojo" );
$aDiferencias1 = array_diff( $aNumeros1, $aNumeros2 );
$aDiferencias2 = array_diff( $aColores1, $aColores2, $aColores3 );
// Devuelve: Array ( [1] => 22 )
print_r( $aDiferencias1 );
echo "<br />";
// Devuelve: Array ( [color4] => naranja )
print_r( $aDiferencias2 );
?>
Como puedes comprobar, puede ser usado tanto en arrays normales como en arrays asociativos.
Si bien array_diff() realiza la comprobación sobre los valores de los arrays, también disponemos de la función array_diff_key() la cual comprueba las claves en un arrays asociativos:
<?php
$aColores1 = array( "color1" => "rojo", "color2" => "verde", "color3" => "azul", "color4" => "naranja" );
$aColores2 = array( "color1" => "verde", "color2" => "azul", "color3" => "amarillo" );
$aDiferencias = array_diff_key( $aColores1, $aColores2 );
// Devuelve: Array ( [color4] => naranja )
print_r( $aDiferencias );
?>

Vea también: [ array_diff() ] - [ array_diff_key() ]
Con la función implode() obtendremos los valores contenidos en los elementos de un array como una cadena de texto, especificando como primer parámetro el texto delimitador entre ellos (si no lo indicamos se usará una cadena vacía):
<?php
$aNombres = array("PEPE", "ALFREDO", "ALBERTO", "CARMEN", "MARÍA", "TERESA");
// Devuelve la cadena: "PEPE - ALFREDO - ALBERTO - CARMEN - MARÍA - TERESA"
echo implode( " - ", $aNombres );
?>

Vea también: [ implode() ]
La función explode() devuelve un array a partir de los valores contenidos en una cadena de texto, indicando los caracteres separadores como primer parámetro:
<?php
$nombres = "PEPE, ALFREDO, ALBERTO, CARMEN, MARÍA, TERESA";
$aNombres = explode( ", ", $nombres );
// Devuelve: Array ( [0] => PEPE [1] => ALFREDO [2] => ALBERTO [3] => CARMEN [4] => MARÍA [5] => TERESA )
print_r( $aNombres );
// Devuelve: "aNombres[1] es [ALFREDO]"
echo "<p>aNombres[1] es [".$aNombres[1]."]</p>";
?>
Otra función de la que disponemos es str_split(), en la que especificaremos el número de caracteres a extraer de la cadena, que serán después guardados en cada posición del array en PHP:
<?php
$nombres = "Cursos gratis";
$aCaracteres1 = str_split( $nombres );
$aCaracteres2 = str_split( $nombres, 4 );
// Devuelve: Array ( [0] => C [1] => u [2] => r [3] => s [4] => o [5] => s [6] => [7] => g [8] => r [9] => a [10] => t [11] => i [12] => s )
print_r( $aCaracteres1 );
echo "<br />";
// Devuelve: Array ( [0] => Curs [1] => os g [2] => rati [3] => s )
print_r( $aCaracteres2 );
?>
Observa que si no indicamos el segundo parámetro se extraerá carácter a carácter.

Vea también: [ explode() ] - [ str_split() ]