Exercício de Programação #10 - PHP - Ordenamento de array multidimensional
23/01/2021No 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
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.
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.