---
title: "Ordenando Arrays multidimensionales con PHP"
date: 2014-10-18
author: "Alex Borrás"
source: https://alexborras.com/ordenando-arrays-multidimensionales-con-php/
site: "El Blog de Alex Borrás"
---

# Ordenando Arrays multidimensionales con PHP

[![php-logo](https://alexborras.com/wp-content/uploads/2011/09/php-logo-150x143.jpg)](https://alexborras.com/wp-content/uploads/2011/09/php-logo.jpg)Un 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](http://www.the-art-of-web.com/php/sortarray/) después de analizar distintas soluciones, mi pequeña aportación ha conssitido en el parámetro $order.

```

$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 "
<pre>";
$sorted_data = orderBy($data, 'age');
print_r($sorted_data);
$sorted_data = orderBy($data, 'age',"DESC");
print_r($sorted_data);
```
