Ordenar arrays asociativos en otro array con PHP

Hay algunas veces en las que disponemos de un array que contiene a su vez varios arrays asociativos. Y que, a su vez, estos pueden contener más información. Como por ejemplo los datos obtenidos tras realizar una consulta a la base de datos. Es posible que dicho array esté cacheado y que, por ello, no queramos atacar a la base de datos para ordenar esos resultados. Es decir, que queramos ordenar la información pero sin tener que modificar nada en la base de datos. En esta situación, nos vendría genial poder ordenar los arrays asociativos que contenga dicho array de alguna forma fuera de la base de datos. Todo ello en base a cada uno de los valores que contenga una de las claves de los mismos. Todo esto, podemos verlo mucho más claro a través de un ejemplo. Pongamos que tenemos un array que contiene nombres y apellidos y queremos ordenar esa información. Para ello deberemos recurrir a un array como, por ejemplo, el siguiente: Funciones de PHP Pra realizar esta misma tarea, en PHP disponemos de múltiples funciones. Entre tantas funciones destaca una: la función usort(). Esta función de PHP sirve para ordenar elementos dentro de una base de datos en base a una función de comparación. Este es un criterio que nosotros mismos podemos especificar según los resultados que nos interese obtener. Por lo que si queremos obtener diferente información, podemos ordenar los datos de la base de datos de maneras distintas. Por ejemplo, si quisiéramos ordenar…

Hay algunas veces en las que disponemos de un array que contiene a su vez varios arrays asociativos. Y que, a su vez, estos pueden contener más información. Como por ejemplo los datos obtenidos tras realizar una consulta a la base de datos.

Es posible que dicho array esté cacheado y que, por ello, no queramos atacar a la base de datos para ordenar esos resultados. Es decir, que queramos ordenar la información pero sin tener que modificar nada en la base de datos. En esta situación, nos vendría genial poder ordenar los arrays asociativos que contenga dicho array de alguna forma fuera de la base de datos. Todo ello en base a cada uno de los valores que contenga una de las claves de los mismos.

Todo esto, podemos verlo mucho más claro a través de un ejemplo. Pongamos que tenemos un array que contiene nombres y apellidos y queremos ordenar esa información. Para ello deberemos recurrir a un array como, por ejemplo, el siguiente:


$resultados = array(

array(

      'id' => 1,
      'nombre' => 'Enjuto',
      'apellido' => 'Mojamuto'

     ),

array(

      'id' => 2,
      'nombre'  => 'Marlo',
      'apellido'  => 'Brando'

     )

);

Funciones de PHP

Pra realizar esta misma tarea, en PHP disponemos de múltiples funciones. Entre tantas funciones destaca una: la función usort(). Esta función de PHP sirve para ordenar elementos dentro de una base de datos en base a una función de comparación. Este es un criterio que nosotros mismos podemos especificar según los resultados que nos interese obtener. Por lo que si queremos obtener diferente información, podemos ordenar los datos de la base de datos de maneras distintas.

Por ejemplo, si quisiéramos ordenar los datos contenidos en la base de datos según la clave ID, en orden descendiente; deberíamos ejecutar una función de un aspecto similar a la siguiente:


function comparar($x, $y){

          if ( $x['id'] == $y['id'] )
             return 0;
          else if ( $x['id'] > $y['id'] )
             return -1;
          else
             return 1;

}

Ahora, para que usort() pueda utilizar función, deberemos llamarle e indicarle que haga la acción que queremos. De otra manera, usort() no sabrá qué es lo que tiene que hacer ni de dónde tiene que obtener esa información. Pero facilitarle las cosas a la función usort() bastará con ejecutar un código similar a este:


//si no estamos en un entorno Orientado a Objetos
usort($resultados, array('comparar'));

//si estamos en un entorno Orientado a Objetos
usort($resultados, array('nombreDeClase','comparar'));

Una vez hayas ejecutado el código que te indicamos, tus arrays estarán ordenados. Y, para ello, no habrás tenido que realizar ningún tipo de modificación en el contenido de tu base de datos.

¿Sabes cómo crear consultas select count en PHP? Para ampliar tus conocimientos sobre PHP, sigue de cerca nuestro blog tecnológico.

Compartir
Etiquetas PHP

Artículos recientes

¿Por qué es necesario almacenar los backups en un espacio externo?

¿Te imaginas que ocurriera algún problema en tu servidor cloud y necesitaras restaurar el último backup? ¿Qué ocurriría si almacenaras…

9 octubre, 2019

¿Qué es un servidor proxy?

Tanto si estás familiarizado con la informática como si no, es muy probable que en algún momento hayas oído hablar…

2 octubre, 2019

WHOIS (por fin) podría tener un sustituto: RDAP

La llegada del nuevo reglamento de privacidad de los datos ya hizo presagiar el final de WHOIS, un final que…

25 septiembre, 2019

¿Qué es la directiva PSD2 y cómo te afecta?

Como en todo, a medida que el comercio electrónico ha ido creciendo y mejorando ha ocurrido lo mismo con su…

18 septiembre, 2019

SIM swapping, el fraude bancario que empieza por tu tarjeta SIM

Desde que empezaron a convertirse en algo fundamental en nuestro día a día, el temor a perder nuestro smartphone ha…

11 septiembre, 2019

Conoce el consumo de tu servidor con las nuevas gráficas de monitorización

La monitorización proactiva es una de las características principales de nuestros servicios de administración de sistemas. Pero, el hecho de…

4 septiembre, 2019

Nuestro sitio web utiliza cookies para mejorar la navegación y obtener datos estadísticos sobre las visitas obtenidas.

Leer más