Ordenar un array múltiple por dos filtros

Estándar

Aunque parezca tonto, muchas veces cuando desarrollamos nos encontramos con pequeños escalones que nos hacen cuestionarnos como programadores. Recientemente estaba solventando unos detalles con un catalogo de productos y el cliente quería que cuando se imprimiera el producto se ordenara por dos patrones (orden y peso), pues después de complicarme un montón y buscar mas de mil métodos de ordenamiento, me di cuenta que una función de php mas 3 lineas de código lo hacen todo por ti.

Esta función es array_multisort() y a continuación les daré un pequeño ejemplo de como podemos usar esta función en este tipo de problemas.

$carrito = array(
array('ID' => 1, 'nombre' => 'Baguette', 'peso' => '500', 'orden' => '13'),
array('ID' => 2, 'nombre' => 'Napolitana', 'peso' => '100', 'orden' => '11'),
array('ID' => 3, 'nombre' => 'Pan de molde', 'peso' => '200', 'orden' => '12'),
array('ID' => 4, 'nombre' => 'Rosca', 'peso' => '80', 'orden' => '11')
);
# Obtenemos en un array nuevo los datos a ordenar y que vamos a pasar al array_multisort
$sort = array();
foreach($carrito as $i=>$j) {
$sort['orden'][$i] = $j['orden'];
$sort['pero'][$i] = $j['peso'];
}
# ordenamos por orden y despues por peso ambos de forma ascendente (ASC)
array_multisort($sort['orden'], SORT_ASC, $sort['peso'], SORT_ASC,$carrito);

Y con esto ya nuestro “$carrito” ya quedaría ordenado como queremos y listo para imprimir.

Anuncios

Un comentario en “Ordenar un array múltiple por dos filtros

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s