Funciones para utilizar con Arreglos


 


                        Se describen a continuación, algunas funciones de utilidad para el manejo de arreglos.
Función sort()
                       Esta función permite ordenar los elementos de un arreglo (vector) de menor a mayor, en orden numérico o alfabético, con el siguiente orden:
Primero se ordenarán los números, luego los signos de puntuación y por último las letras.

Ejemplo 1:
                        Cargar en un arreglo nombre de personas y luego mostrarlos ordenados de menor a mayor.

<Html>
<Title>  Ejemplo1-Sort.php  </Title>
<Body>
<?Php
  // Inicializacion del Vector
  $Nombres = array("Maria", "Luis", "Alberto", "Cesar", "Adriana");

  // Ordenamiento del vector
  sort($Nombres);

  echo "<H2>"."Vector de Nombres ordenados";
  echo "<H3>"."<Hr>";
  while (list($i,$Valor)=each($Nombres))
   {
     echo "Posición: " . $i . " - ";
     echo "Contenido: " . $Valor;
     echo "<Br>";
    }
 ?>
</Body>
</Html>


 Nota:
            Si se utiliza la función sort() con índices de texto, se observa que, una vez ordenado, ha cambiado los índices de texto por números, comenzando de cero en adelante. Para salvar este inconveniente se utiliza la función asort().
 
Función asort()
                                   Esta función permite ordenar arreglos con índices de texto, manteniendo el valor de sus índices. Tiene como parámetro el vector, y el ordenamiento es de menor a mayor.

Ejemplo 2:
                        Ordenar alfabéticamente de menor a mayor el vector de ciudades del mundo del ejemplo Nro. 6. de la página anterior.

<Html>
<Title>  Ejemplo2-Asort..php  </Title>
<Body>
<?Php
  // Inicializacion del Vector
  $Ciudad = array("Par" => "Paris",
                            "Lon" => "Londres",
                            "Ate" => "Atenas",
                            "Ber" => "Berlin",
                            "Lim" => "Lima");
  asort($Ciudad);

  echo "<H2>"."Vector de Ciudades ordenado";
  echo "<H3>"."<Hr>";
  while (list($i,$Valor)=each($Ciudad))
   {
     echo "Posición: " . $i . " - ";
     echo "Contenido: " . $Valor;
     echo "<Br>";
    }
 ?>
</Body>
</Html>


Función rsort()
                                   Es la inversa de la función sort(). Permite ordenar un vector pasado como parámetro en forma descendente, es decir de mayor a menor.

Ejemplo 3:
                        Modificar el ejemplo anterior para mostrar el vector de nombres de personas en forma descendente.

<Html>
<Title>  Ejemplo3-Rsort.php  </Title>
<Body>
<?Php
  // Inicializacion del Vector
  $Nombres = array("Maria", "Luis", "Alberto", "Cesar", "Adriana");

  // Ordenamiento del vector descendente
  rsort($Nombres);

  echo "<H2>"."Vector de Nombres ordenados en forma descendente ";
  echo "<H3>"."<Hr>";

  while (list($i,$Valor)=each($Nombres))
   {
     echo "Posición: " . $i . " - ";
     echo "Contenido: " . $Valor;
     echo "<Br>";
    }
 ?>
</Body>
</Html>

Función arsort()
                                   Es la inversa de la función asort(). Permite ordenar un vector con índices de texto pasado como parámetro en forma descendente, es decir de mayor a menor.

Ejemplo 4:
                        Modificar el ejemplo 2 para mostrar el vector de ciudades en forma descendente.

<Html>
<Title>  Ejemplo4-Arsort.php  </Title>
<Body>
<?Php
  // Inicializacion del Vector
  $Ciudad = array("Par" => "Paris",
                            "Lon" => "Londres",
                            "Ate" => "Atenas",
                            "Ber" => "Berlin",
                             "Lim" => "Lima");
  arsort($Ciudad);

  echo "<H2>"."Vector de Ciudades ordenado en forma descendente";
  echo "<H3>"."<Hr>";

  while (list($i,$Valor)=each($Ciudad))
   {
     echo "Posición: " . $i . " - ";
     echo "Contenido: " . $Valor;
     echo "<Br>";
    }
 ?>
</Body>
</Html>

Función ksort()
                                   Permite ordenar un arreglo por el índice del mismo, sin tener encuenta los elementos.

Ejemplo 5:
                        Cargar nombres de paises como índices con sus respectivas monedas y mostrarlos ordenados por los índices.

<Html>
<Title> Ejemplo5-Ksort.php </Title>
<Body>
<?Php
// Inicializacion del Vector

$Ciudad = array("Francia" => "Franco",
                          "Japon" => "Yen",
                          "Brasil" => "Real",
                          "Italia" => "Lira",
                          "Argentina" => "Peso");
arsort($Ciudad);

ksort($Ciudad);

echo "<H2>"."Vector ordenado por paices ";
echo "<H3>"."<Hr>";
while (list($i,$Valor)=each($Ciudad))
{
      echo "Posición: " . $i . " - ";
      echo "Contenido: " . $Valor;
      echo "<Br>";
}
?>
</Body>
</Html>


                                                                                                                                                                                                                  

Función krsort()
                      Ordena un arreglo de acreudo al índice del mismo en orden descendente, es decir de mayor a menor.

Ejemplo 6:
                        Mostrar en orden inverso el listado del vector del ejemplo número 5.

<Html>
<Title> Ejemplo6-Krsort.php </Title>
<Body>
<?Php
// Inicializacion del Vector

$Ciudad = array("Francia" => "Franco",
                          "Japon" => "Yen",
                          "Brasil" => "Real",
                          "Italia" => "Lira",
                          "Argentina" => "Peso");
arsort($Ciudad);

krsort($Ciudad);

echo "<H2>"."Vector de ordenado por paices en forma descendente";
echo "<H3>"."<Hr>";
while (list($i,$Valor)=each($Ciudad))
{
     echo "Posición: " . $i . " - ";
     echo "Contenido: " . $Valor;
     echo "<Br>";
}
?>
</Body>
</Html>

Función shuffle()
                                   Permite mezclar los elementos de un arreglo, es decir, que cambie en forma aleatoria el orden de los elementos del arreglo que se le pase como parámetro.

Ejemplo 7:
                        Mezclar los elementos del vector del ejercicio 5.

<Html>
<Title> Ejemplo7-Shuffle.php </Title>
<Body>
<?Php
// Inicializacion del Vector

$Ciudad = array("Francia" => "Franco",
                          "Japon" => "Yen",
                          "Brasil" => "Real",
                          "Italia" => "Lira",
                          "Argentina" => "Peso");
arsort($Ciudad);

shuffle($Ciudad);

echo "<H2>"."Vector ordenado en forma aleatoria ";
echo "<H3>"."<Hr>";
while (list($i,$Valor)=each($Ciudad))
{
echo "Posición: " . $i . " - ";
echo "Contenido: " . $Valor;
echo "<Br>";
}
?>
</Body>
</Html>


Nota: Se observa en este caso que las posiciones han cambiado automáticamente a valores numéricos. Comenzando por la posición cero.
Si se vuelve a ejecutar el programa, se obtiene otro orden de contenido.

Función range()
                                   Con esta función, se puede asignar a los elementos de un arreglo los valores comprendidos en un determinado rango. Acepta como parámetros los valores de inicio y fin de los datos a almacenar.

Ejemplo 8:
                   Generar un vector con todos los valores comprendidos entre 100 y 150. Posteriormente imprimirlos uno a lado del otro.

<Html>
<Title> Ejemplo8-Range.php </Title>
<Body>
<?Php
// Inicializacion del Vector
$Numeros = range(100,150);

echo "<H2>"."Vector Generado";
echo "<H3>"."<Hr>";
while (list($i,$Valor)=each($Numeros))
{
      echo $Valor . " - ";
}
?>
</Body>
</Html>

Esta función, también permite definir un rango entre letras. (Únicamente letras, si se pusiera una cadena, tomaría la primer letra).

Ejemplo 9:
                  Asignar a un vetor las letras comprendidas entre “c” y “p”, y luego mostrarlas una al lado de la otra.

<Html>
<Title> Ejemplo9-Letras.php </Title>
<Body>
<?Php
// Inicializacion del Vector
$Letras = range("c","w");

echo "<H2>"."Letras Generadas";
echo "<H3>"."<Hr>";
while (list($i,$Valor)=each($Letras))
{
      echo $Valor . " - ";
}
?>
</Body>
</Html>


También se puede generar valores en orden inverso para almacenarlos en un vector, simplemente colocando en el primer parámetro de la función range(), un valor superior al segundo parámetro.

Función array_fill()
                                   Permite almacenar en un arreglo (Vector), un dato que se va a repetir consecutivamente una cierta cantidad pasada como parámetro.
Los parámetros que acepta son tres, y tiene el siguiente formato:

$Vector = array_fill(Indice, Cantidad, Dato);

Indice indica cual será el primer elemento.
Cantidad indica cuantos elementos se generarán.
Dato es el valor con que se llenará el vector                             

Ejemplo 10:

<Html>
<Title> Ejemplo10-Array_fill.php </Title>
<Body>
<?Php
// Inicializacion del Vector
$Vector=array_fill(10,5,"PHP");

echo "<H2>"."Vector generado";
echo "<H3>"."<Hr>";
while (list($i,$Valor)=each($Vector))
{
      echo "Posición: " . $i . " - ";
      echo "Contenido: " . $Valor;
      echo "<Br>";
}
?>
</Body>
</Html>


 En este ejemplo se definió un arreglo que comience en el índice 10, que contenga 5 elementos y almacene PHP como dato.

Función in_array()
                                   Mediante esta función, se puede buscar un dato dentro de un arreglo. Si el dato existe dentro del arreglo, la función devuelve verdadero, de lo contrario devuelve falso.

Ejemplo 11:
                        Cargar los días de la semana en un vector y luego almacenar en una variable un día cualquiera. Imprimir el vector y determinar si el cotenido de la variable se incuentra incluido en el vector.

<Html>
<Title> Ejemplo11-In_Array.php </Title>
<Body>
<?Php
// Inicializacion del Vector
$Dias=array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado");

$D = "Martes";
echo "<H2>"."Vector de Días";
echo "<H3>"."<Hr>";
while (list($i,$Valor)=each($Dias))
{
      echo $Valor. " ";
}
echo "<Br>";
echo "<Br>";

if (in_array($D,$Dias))
echo "$D existe en el vector Dias";
else
echo "$D no existe en el vector Dias";
?>
</Body>
</Html>