Ordenar el resultado del bucle foreach
Ordenar el resultado del bucle foreach.- Si deseamos ordenar resultados de un ciclo foreach podemos usar SORT() para obtener el resultado deseado. Sin embargo, existen más funciones que ordenar resultados y lo hemos detallado en el presente artículo.
Ordenar el resultado del bucle foreach
Existen varias formas de ordenar resultados uno por ejemplo es a través de la consulta SQL usando la cláusula ORDER BY y otra es usando SORT() dentro del ciclo foreach PHP
Fichero conexion.php
para la conexión con el servidor de base de datos usaremos una clase llamada Conexion y La extensión Objetos de Datos de PHP ( PDO por sus siglas en inglés) define una interfaz ligera para poder acceder a bases de datos en PHP.
<?php
class Conexion{
public static function conectar(){
$link = new PDO("mysql:host=localhost;dbname=DBNAME",
"DBUSER",
"DBPASS");
$link->exec("set names utf8");
return $link;
}
}
Consulta y conexión MySQL para ordenar
Primero tenemos que conectarnos con la base de datos (MySQL) y posteriormente crear una consulta SQL. Por lo tanto, para este ejemplo usaremos una tabla llamada entradas para poder ordenar sus resultados a través del ciclo foreach.
Usaremos PDO como conexión con MySQL
require_once "./modelos/conexion.php";
$db = Conexion::conectar();
$entradas= $db->prepare("SELECT * FROM entradas");
$msede->execute();
$lista_entradas= $entradas->fetchAll();
Ordenar resultados Foreach PHP
Para ordenar funciona en una matriz, y lo que está haciendo es llamar a ordenar en cada elemento de la matriz que no funcionará.
Lo que puede hacer en su lugar es hacer su bucle foreach y luego ordenar:
<?php
$array = [];
foreach ($lista_entradas as $item) {
$distance = $item["cantidad"] * $item["cantidad2"];
$array[] = $distance;
}
sort($array);// Ordenamos los resultados
var_dump($array);
?>
Primero convierta su resultado $item["cantidad"]
en (array)$item["cantidad"]
y luego use una de las siguientes funciones:
- sort() – ordena las matrices en orden ascendente
- rsort() – ordena las matrices en orden descendente
- asort() – ordena matrices asociativas en orden ascendente, de acuerdo con el valor
- ksort() – ordenar matrices asociativas en orden ascendente, de acuerdo con la clave
- arsort() – ordenar matrices asociativas en orden descendente, según el valor
- krsort() – ordena matrices asociativas en orden descendente, de acuerdo con la clave
Conclusiones y recomendaciones
Si analizamos las opciones para ordenar los registros se nos viene a la cabeza usar ORDER BY id ASC o DESC. Sin embargo, si esto no nos satisface ya podemos usar otras opciones como SORT() que ejecuta y/o ordena resultados del ciclo foreach.
Espero que esta pequeña explicación ayude a despejar dudas acerca de ordenamiento de registros en PHP