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!

9 Responses to “Como utilizar array bidimensional em PHP”

  1. Oº°'¨ Jefferson ¨'°ºO Says:

    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.

  2. Andrey Pedro Lefkum Says:

    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!

  3. Xunda Says:

    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

  4. Andrey Pedro Lefkum Says:

    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!

  5. Joaquim Says:

    legal, valeu.

    Verifica a tag meta do codigo deste blog, pq esta exibindo acentuacao de forma errada.

  6. Joaquim Says:

    meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″

  7. Andrey Pedro Lefkum Says:

    O Joaquim vou verificar isso!
    Obrigado!

  8. Glaucio F. Schultz Says:

    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.

  9. Andrey Pedro Lefkum Says:

    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

Leave a Reply


This is a free Wordpress template provided by Mathew Browne | Web Design | SEO