Como utilizar array bidimensional em PHP
Friday, June 22nd, 2007Array’s podemos dizer que são tabelas temporárias que armazenam qualquer tipo de informação, como também podemos dizer que são árvores de informação dependendo do formato que for criado.
Não cheguei a fazer uma pesquisa, mas de todas empresas que tive acesso, constatei que são dois padrões mais utilizados nos array’s, um deles chamo de árvore e o outro ainda não dei um nome =D
Árvore:
<?php
$vetor[1]['nome'] = “Andrey Pedro Lefkum”;
$vetor[1]['sitePessoal'] = “http://www.andrey.com.br”;
$vetor[1]['diaDisponibilidade'][1] = “terça-feira”;
$vetor[1]['diaDisponibilidade'][2] = “quinta-feira”;
$vetor[2]['nome'] = “Eliton José da Silva”;
$vetor[2]['sitePessoal'] = “http://www.eliton.eti.br”;
$vetor[2]['diaDisponibilidade'][1] = “segunda-feira”;
$vetor[2]['diaDisponibilidade'][2] = “quinta-feira”;
$vetor[3]['nome'] = “Filipe M…”;
$vetor[3]['sitePessoal'] = “http://www.tecnoabil.com.br”;
$vetor[3]['diaDisponibilidade'][1] = “quarta-feira”;
$vetor[3]['diaDisponibilidade'][2] = “quinta-feira”;
/*
Utilizaremos o print_r para ver qual será o resultado da impressão desse array…
*/
print_r($vetor);
?>
O Resultado
Array
(
[1] => Array
(
[nome] => Andrey Pedro Lefkum
[sitePessoal] => http://www.andrey.com.br
[diaDisponibilidade] => Array
(
[1] => terça-feira
[2] => sexta-feira
)
)
[2] => Array
(
[nome] => Eliton José da Silva
[sitePessoal] => http://www.eliton.eti.br
[diaDisponibilidade] => Array
(
[1] => segunda-feira
[2] => sexta-feira
)
)
[3] => Array
(
[nome] => Filipe M…
[sitePessoal] => http://www.tecnoabil.com.br
[diaDisponibilidade] => Array
(
[1] => quarta-feira
[2] => sábado
)
)
)
Perceba que começa com um código e vai abrindo o array como se fosse uma árvore.
Agora vamos ver o outro tipo de array… aquele que ainda não dei um nome a ele:
Array sem Nome =D
<?php
$vetor['nome'][1] = “Andrey Pedro Lefkum”;
$vetor['sitePessoal'][1] = “http://www.andrey.com.br”;
$vetor['diaDisponibilidade'][1][1] = “ter軋-feira”;
$vetor['diaDisponibilidade'][1][2] = “quinta-feira”;
$vetor['nome'][2] = “Eliton Jos・da Silva”;
$vetor['sitePessoal'][2] = “http://www.eliton.eti.br”;
$vetor['diaDisponibilidade'][2][1] = “segunda-feira”;
$vetor['diaDisponibilidade'][2][2] = “quinta-feira”;
$vetor['nome'][3] = “Filipe M…”;
$vetor['sitePessoal'][3] = “http://www.tecnoabil.com.br”;
$vetor['diaDisponibilidade'][3][1] = “quarta-feira”;
$vetor['diaDisponibilidade'][3][2] = “quinta-feira”;
print_r($vetor);
?>
O Resultado
Array
(
[nome] => Array
(
[1] => Andrey Pedro Lefkum
[2] => Eliton José da Silva
[3] => Filipe M…
)
[sitePessoal] => Array
(
[1] => http://www.andrey.com.br
[2] => http://www.eliton.eti.br
[3] => http://www.tecnoabil.com.br
)
[diaDisponibilidade] => Array
(
[1] => Array
(
[1] => terça-feira
[2] => quinta-feira
[3] => sexta-feira
)
[2] => Array
(
[1] => segunda-feira
[2] => quinta-feira
[3] => sexta-feira
)
[3] => Array
(
[1] => quarta-feira
[2] => quinta-feira
[3] => sábado
)
)
)
Perceba que o segundo tipo de array cria um grupo para cada tipo de item: Nome, Site Pessoal, a Disponibilidade de todos fica armazenada em um grande grupo, porém as duas estão organizadas e darão o mesmo resultado.
Mas qual devo usar?
O Array “árvore” é ótimo para visualização, pois, quando utilizamos a função nativa do PHP “print_r”, dará uma visão mais clara do que temos no array, ou seja, tudo que é pertinente aquele usuário está agrupado, já no outro formato de array o agrupamento é pelo tipo de informação.
Porém um dos grandes problemas do array em “árvore” é ordenação… Caso queira ordenar esse vetor, será um parto… A função que você provavelmente utilizará será “array_mulltisort()”:
http://br2.php.net/manual/pt_BR/function.array-multisort.php
Porque a ordenação é diferente nos dois tipos de uso de array?
Como no segundo array as informações estão agrupadas por tipo… Esquece… vamos fazer uma analogia ao problema:
Temos 30 fitas, 50 DVDs, 15 revistas, 45 Jornais…
Ta, agora ordene todos as publicações por titulo…
Vai ser difícil, porém não impossível…
Agora, seu chefe diz:
- Olhe, temos 4 colunas de publicações, uma com fitas, outra com DVD’s, revistas e por último jornais, agora em cada coluna quero que ordene por título, será com certeza bem mais fácil!
E é assim que acontece quando tentará ordenar os dois tipos de array, então cabe a você nobre programador anti social =D “Por que falam isso dos programadores? =D” ter o bom senso de escolher o melhor para sua aplicação!
É isso ae!
Espero que esse artigo sirva para alguma coisa
Até mais!
Como muitas pessoas utilizam o armazenamento “cache” do navegador ligado, quando se há alterações na página ela não consegue ver, pois o navegador pega o a página temporária que armazenou da primeira vez que o usuário acessou o site, para esse problema, basta usar o código abaixo no topo de seu código, lembrando que ele deve ficar em cima de qualquer echo, print, print_r … para funcionar.