Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Exercício de Programação #10 - PHP - Ordenamento de array multidimensional

23/01/2021

No exercício de hoje teremos um desafio de PHP em que teremos que ordenar arrays muldimensionais por algum índice específico.

Como ordenar matrizes com PHP?

Iniciaremos nosso exercício criando três arquivos:
index.php
db.php
ClassData.php

index.php

Esse arquivo receberá a nossa base html e exibirá os dados para o usuário final.

<?php
    include "ClassData.php";
    include "db.php";
    $objData=new ClassData();
    $objData->setKey('Estado');
    $arr=$objData->sortData($arr);
?>

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
    <title>Document</title>
</head>
<body>
<table class="table">
    <thead class="thead-dark">
    <tr>
        <th scope="col">Nome</th>
        <th scope="col">Idade</th>
        <th scope="col">Estado</th>
    </tr>
    </thead>
    <tbody>
    <?php foreach ($arr as $db){ ?>
    <tr>
            <td><?php echo $db['Nome']; ?></td>
            <td><?php echo $db['Idade']; ?></td>
            <td><?php echo $db['Estado']; ?></td>
        </tr>
    <?php } ?>
    </tbody>
</table>

</body>
</html>

db.php

Esse arquivo será responsável por receber o nosso array multidimensional:

<?php
$arr=[
    [
        "Nome"=>"Thiago",
        "Idade"=>30,
        "Estado"=>"MG"
    ],
    [
        "Nome"=>"Thaís",
        "Idade"=>15,
        "Estado"=>"SP"
    ],
    [
        "Nome"=>"Roberto",
        "Idade"=>10,
        "Estado"=>"RJ"
    ],
    [
        "Nome"=>"Vanessa",
        "Idade"=>22,
        "Estado"=>"SP"
    ],
    [
        "Nome"=>"Junior",
        "Idade"=>40,
        "Estado"=>"BA"
    ],
];

ClassData.php

A classe ClassData será responsável por utilizar a função PHP de ordenamento e retornar o array manipulado:

<?php

class ClassData
{
    private $key;
    public function getKey(){return $this->key;}
    public function setKey($key){$this->key = $key;}

    public function sortData($arr)
    {
        array_multisort(array_map(function ($element){
            return $element[$this->getKey()];
        },$arr),SORT_ASC,$arr);
        return $arr;
    }
}

Por hoje é só! Sucesso nos códigos e na vida!

Precisa de um professor? webdesignemfoco@gmail.com

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Exercício de Programação #09 - Python - Soma, média e ordenamento de valores
Nesse exercício faremos um teste da linguagem de programação Python. A ideia é que o sistema receba números do usuário e exiba a média, soma e ordenamento.
Saiba mais!
Exercício de Programação #11 - Google Planilhas - Letra Maiúscula
Neste tutorial faremos um exercício de Google Planilhas onde o desafio é tranformar textos em fontes maiúsculas.
Saiba mais!
Exercícios
Nessa playlist aprenderemos na prática a programar, utilizando para isso exercícios de programação nas mais variadas linguagens e tecnologias.
Saiba mais!