Ir al contenido principal

PHP - Ordenar una arreglo por nombre de campo

http://www.paginasprodigy.com/adan_esime/progs/PHP-ordenarArray.zipTenemos una tabla con las ventas por articulo en cada sucursal


Necesidad:
Se necesita mostrar en pantalla las ventas por tienda ordenanos de mayor a menor
Se debe de mostrar la posición de venta por tienda, es decir enumerarlas, 1 para la mejor venta, N para la venta mas baja.


Solución:
Una solución (no recomendada) es hacer una consulta por tienda solicitando las ventas en orden descendente. Esto se complica cuando en lugar de 3 tiendas tenemos 20.
Se tendrían que hacer 20 consultas.

Según mi experiencia es preferible, generar una consulta única y trabajar con el resultado en el PHP.



CÓDIGO:


//Esta Funcion ordena un array multidimensional por un campo determinado
function topVentas(array $array, $key, $tda="GRAL",$asc = false) {
$tda = ($tda=="GRAL")?"GRAL":"TDA$tda";

$result = array();
$values = array();

foreach ($array as $id => $value) {
$values[$id] = isset($value[$key]) ? $value[$key] : '';
}// end of foreach

if ($asc) {asort($values);}
else {arsort($values);}

//Obtiene Numero de Posicion y Acumula la Venta Total
$i=1;
foreach ($values as $key => $value) {
$result[$key] = $array[$key];
$result[$key]["pos$tda"] = $i;
$i++;
}// end of foreach
return $result;
}//end of topVentas

//Realiza Consulta
$queryVtas="select articulo, vta1, vta2, vta3, totalVtas from tabla_ventas"
$result=mssql_query($queryVtas) or die ("ERROR...");

while ($row =mssql_fetch_array($result)){
      $salida[]=$row;
}

//Ordenamos el arreglo por cada tienda y agrega columna con la posicion 
$salida = topVentas( $salida, "vta1", "1") 
$salida = topVentas( $salida, "vta2", "2") 
$salida = topVentas( $salida, "vta3", "3") 
$salida = topVentas( $salida, "totalVtas", "GRAL") 
echo "
";print_r($salida);echo "
"
?>

Comentarios

Entradas más populares de este blog

¿Por qué me gusta programar?

El desarrollo de software (al igual que la música, la escultura o la pintura) es una actividad creativa y, hasta si se quiere, artística. Cuando un músico escucha una melodía que acaba de componer o cuando un escultor retoca el último detalle de su obra maestra, está ante un logro personal, pero que fue hecho pensando en los demás. Está ante el fruto de su trabajo, que tuvo que realizar para pasar de una idea o modelo que estaba solo en su imaginación, a algo perceptible por los otros. Y ese logro causa una gran satisfacción. El desarrollo de software (al igual que la música, la escultura o la pintura) es una actividad creativa y, hasta si se quiere, artística. Es una actividad en la que una persona (el programador) debe plasmar una idea en un programa que alguien usará luego. Y es muy probable que esa idea sea algo totalmente novedoso, algo que nadie antes ha visto. Y ver esa idea traducida en software produce una sensación que únicamente un programador puede entender...

USA tu CELULAR como WEBCAM en el MSN

Este tutorial lo saque de CLUB MOTOROLA ARGENTINA. Es muy bueno, para los que no tenemos una webcam. Ademas de que le podemos sacar mas provecho a nuestor celular. Mi telefono es un C650, y funciono de maravilla. *********************** (Este tuto sirve solo para los motorola VXXX y algunos CXXX) 1º Bajan estos dos programas. Soft Cam junto con su Crack Motocam 2º Abren el motocam y le dan click a lo que esta en el cuadro rojo. 3º ponen todas esas configuraciones como indican las imagenes. 4º Le dan click a Ok 5º Instalan el soft cam y el crack 6º Mueven la palanquita que dice Stored a Live y la de Still a move 7º Vuelven al Motocam y le dan click a WebCam - Start 8º Ubican el cuadro dorado del SoftCam sobre lo q ve la camara. Y ya tienen su webcam en el msn!! Gracias capocha por la GRAN ayuda! Esto lo probe en un v3black; y un v635; anduvo en los dos. Hagan sus pruebas ustedes mismos. Cuenten como les fue y con q cel lo hicieron. No esperen q ande como cuando ponen el visor para s...

Migración de ext4 a BTRFS: Mi experiencia con Debian 12

Recientemente me embarqué en la aventura de migrar mi sistema Debian 12 del tradicional sistema de archivos ext4 a BTRFS. En este artículo, comparto mi experiencia completa, desde la planificación hasta la implementación final, incluyendo los obstáculos que encontré y cómo los superé. ¿Por qué migrar a BTRFS? Antes de entrar en los detalles técnicos, quiero explicar brevemente por qué decidí dar este salto: Instantáneas (snapshots) : La capacidad de crear puntos de restauración del sistema de forma rápida y eficiente. Compresión transparente : Ahorro de espacio en disco sin sacrificar rendimiento. Checksums para integridad : Protección automática contra la corrupción silenciosa de datos. Balanceo inteligente : Redistribución de datos que optimiza el uso del almacenamiento. Preparación para el futuro : BTRFS sigue evolucionando con nuevas características. Mi configuración inicial Mi sistema contaba con la siguiente estructura: /dev/sdb1 - 512M - Partición EFI /dev/sdb2 - 58.8G -...