Ordenando Arrays multidimensionales con PHP

php-logoUn ejemplo casi definitivo de como ordenar Arrays multidimensionales en PHP por cualquier campo y tipo de orden. Esta recogido de la siguiente página de Internet: PHP: Sorting Arrays of Arrays después de analizar distintas soluciones, mi pequeña aportación ha conssitido en el parámetro $order.

[sourcecode language=”language_name”]
$data = array(
array(“firstname” => “Mary”, “lastname” => “Johnson”, “age” => 25),
array(“firstname” => “Amanda”, “lastname” => “Miller”, “age” => 18),
array(“firstname” => “James”, “lastname” => “Brown”, “age” => 31),
array(“firstname” => “Patricia”, “lastname” => “Williams”, “age” => 7),
array(“firstname” => “Michael”, “lastname” => “Davis”, “age” => 43),
array(“firstname” => “Sarah”, “lastname” => “Miller”, “age” => 24),
array(“firstname” => “Patrick”, “lastname” => “Miller”, “age” => 27)
);
function orderBy($data, $field,$order = “ASC”){
$code = “return strnatcmp(\$a[‘$field’], \$b[‘$field’]);”;
if ($order == “ASC”){
usort($data, create_function(‘$a,$b’, $code)); //ASC
}elseif ($order == “DESC”){
usort($data, create_function(‘$b,$a’, $code)); //DESC
}else{
usort($data, create_function(‘$a,$b’, $code)); //ASC
}
return $data;
}
/View results
echo “

";
$sorted_data = orderBy($data, 'age');
print_r($sorted_data);
$sorted_data = orderBy($data, 'age',"DESC");
print_r($sorted_data);
[/sourcecode]

Autor: Alex Borrás

Informático, especializado en desarrollo Web con WordPress, Redes Sociales y posicionamiento en buscadores (SEO). Fan de la OOP y como afición jugador de Ajedrez. Geek por vocación & iphonero.

Deja un comentario