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.

$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);

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies