Alphabetical sorting in Array with objects in PHP array

Asked

Viewed 589 times

0

I have the following array in php:

Array(
  [0] => Array([id] => 1 [nome] => b parceiro um [status] => true [descricao] => <p>Descrição do parceiro</p>)
  [1] => Array([id] => 3 [nome] => f parceiro tres [status] => true [descricao] => <p>Descrição do parceiro</p>)
  [2] => Array([id] => 4 [nome] => z parceiro quatro [status] => false [descricao] => <p>Descrição do parceiro</p>)
  [3] => Array([id] => 5 [nome] => a parceiro cinco [status] => true [descricao] => <p>Descrição do parceiro</p>)
  [4] => Array([id] => 7 [nome] => e parceiro sete [status] => true [descricao] => <p>Descrição do parceiro</p>)
}

And I have a for that later, will mount in HTML a listing of this array, but I want to make this listing in alphabetical order taking into account the field nome.

What’s the best way to do this? Thank you.

1 answer

3


Given the input:

$values = [
  0 => ['id' => 1, 'nome' => "b parceiro um", 'status' => true, 'descricao' => "<p>Descrição do parceiro</p>"],
  1 => ['id' => 3, 'nome' => "f parceiro tres", 'status' => true, 'descricao' => "<p>Descrição do parceiro</p>"],
  2 => ['id' => 4, 'nome' => "z parceiro quatro", 'status'=> false, 'descricao' => "<p>Descrição do parceiro</p>"],
  3 => ['id' => 5, 'nome' => "a parceiro cinco", 'status' => true, 'descricao' => "<p>Descrição do parceiro</p>"],
  4 => ['id' => 7, 'nome' => "e parceiro sete", 'status' => true, 'descricao' => "<p>Descrição do parceiro</p>"],
];

I believe you can solve your problem easily with the function usort:

usort($values, function($a, $b){ return $a['nome'] >= $b['nome']; });

The exit will be:

Array
(
    [0] => Array
        (
            [id] => 5
            [nome] => a parceiro cinco
            [status] => 1
            [descricao] => <p>Descrição do parceiro</p>
        )

    [1] => Array
        (
            [id] => 1
            [nome] => b parceiro um
            [status] => 1
            [descricao] => <p>Descrição do parceiro</p>
        )

    [2] => Array
        (
            [id] => 7
            [nome] => e parceiro sete
            [status] => 1
            [descricao] => <p>Descrição do parceiro</p>
        )

    [3] => Array
        (
            [id] => 3
            [nome] => f parceiro tres
            [status] => 1
            [descricao] => <p>Descrição do parceiro</p>
        )

    [4] => Array
        (
            [id] => 4
            [nome] => z parceiro quatro
            [status] => 
            [descricao] => <p>Descrição do parceiro</p>
        )

)

You can see the code working on Repl.it or in the Ideone.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.