Como utilizar array bidimensional em PHP
Array’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!
June 30th, 2007 at 7:46 am
Olá,
Gostei do seu blog e estou querendo criar um para postar alguns scripts php. Qual vc me indica: blogger ou wordpress? como faço para postar códigos fonte sem dar tilt?
Vlwz.
June 30th, 2007 at 2:19 pm
Opa!
Cara gosto muito do Wordpress…
na minha opinião é o melhor!
e pra postar scripts, instale um plugin do firefox tem aqui no blog, mas não lembro o nome!
valeu!
July 3rd, 2007 at 6:27 am
SACRILÉGIO!!!
Uso indiscriminado de arrays deixa o código mais complexo, diminuindo a sua legibilidade.
“Qualquer tolo pode escrever código que um computador pode entender. Bons programadores escrevem código que humanos podem entender.”
Martin Fowler
July 3rd, 2007 at 8:27 am
Olá Sr. Xunda!
Totalmente válida sua colocação do ponto de vista da programação… nada como olhar um código e entender na hora, todo mundo sabe, porém poucos fazem…
Mas o que demonstrei acima são dois tipos de Arrays, que acho interessante implementar, cada um escolhe a melhor forma de faze-lo!
July 7th, 2007 at 12:09 am
legal, valeu.
Verifica a tag meta do codigo deste blog, pq esta exibindo acentuacao de forma errada.
July 7th, 2007 at 12:09 am
meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″
July 7th, 2007 at 6:01 am
O Joaquim vou verificar isso!
Obrigado!
August 7th, 2007 at 10:16 am
O uso de array facilita muito em vários aspectos.
Pode-se, por exemplo, desenvolver classes com regras de negócio que retornam os resultados num array. Isso permite trabalhar com o layout separado das regras de negócio.
Outro exemplo é a possibilidade de se construir métodos que executem instruções Sql, passando a formatação da Sql através de parâmetros do tipo array.
Exemplo:
arrayInsert(Array(”Usuario”=>Array(”id”=>1,”nome”=>”João”)));
ou seja
O Método arrayInsert irá tratar o parâmetro do tipo Array e formatar uma query insert para a tabela Usuario, onde o campo id e nome recebam os valores 1 e “João” respectivamente.
Glaucio.
August 22nd, 2007 at 5:31 am
Denis fez uma pergunta via e-mail que achei interessante colocar aqui no blog:
–
Denis Albino de Oliveira:
1) Por que usar Array?
2) $_POST é um Array?
3) Qual o melhor uso do Array: definir pela posição ou nomear as
variáveis incluídas?
Andrey Pedro Lefkum
A primeira pergunta vou responder com um exemplo denis… digamos que temos dois softwares que realizam uma exportação, e você como programador terá que unir essas duas exportações e criar uma outra listagem sem realizar ações sobre o banco de dados… se não for através de arquivos (criação)… com certeza será por arrays… arrays podem ser considerados banco de dados virtuais (meu ponto de vista), mas assim aconselho vc procurar no google essa primeira pergunta para entender melhor como ele funciona… dessa forma saberá responder essa pergunta…
2) SIM o $_POST é um array nativo do PHP, ou seja vc não vai poder utilizar esse nome dentro do sistema para outra variável.
Basta vc dar um echo no $_POST e vc verá que o php imprimirá Array, dessa forma vc descobre o que ele é!
3) Essa pergunta não compreendi direito mas assim, não há uma regra para utilização do array, eu e o Eliton já tentamos chegar a um acordo porém nunca conseguimos, se bem que ele tem uma opinião quase formada, e eu já não sobre essa sua pergunta…
Eu até fiz um artigo que o Eliton não concordou muito com que escrevi, bommm cada um tem sua opinião.. e até te aconselho ler e ver a opinião dele para ter duas fontes e tentar criar uma para vc…
http://www.andrey.com.br/?p=197
falow POPOP