• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

MROverclock

array tridimensional

11 mensagens neste tópico

Boas,

Em PHP é possivel ter arrays tridimensionais?

algo do género:

$_SESSION['user']['X']['y']

Estou a ter uns problemas no código que estou a escrever e não sei se será daqui, até porque foi a partir do momento em que transformei o código para funcionar com arrays tridimensional que tudo deixou de funcionar

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que podes fazer em php é:

$_SESSION['user'] = array();

$_SESSION['user']['X'] = array();

$_SESSION['user']['X']['y'] = "woot";

Ou seja, arrays de arrays. (Não sei se me fiz entender).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas não tenho que inicializar isso tudo!! ou tenho?

posso simplesmente fazer

$_SESSION['user']['X']['Y'] = "XPTO"

Se posso fazer assim então parece que o meu problema nao é do array :\

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A resposta é: sim, podes usar arrays multi-dimensionais, mas como se trata de um array superglobal não tenho a certeza se tens que inicializar isso como o djthyrax indicou ou nao.

Mas tens boa solução para descobrir se isso funciona ou não... experimenta!

lembra-te que podes sempre ver o conteudo de uma array/variavel com a função print_r()

Olha aqui o snippet mais util que já viste:

function print_r2($variavel){
   echo "<pre>";
   print_r($variavel)
   echo "</pre>";
}

djthyrax: "arrays de arrays" é o mesmo que "arrays multi-dimensionais"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já resolvi o problema, não tinha nada a ver com o facto de ser tridimensional!

É perfeitamente possivel ter arrays de 3 dimensoes e se não me engano até de mais.

um abraço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

djthyrax: "arrays de arrays" é o mesmo que "arrays multi-dimensionais"

Como já me disseram que era !=, fiquei na dúvida.

Btw, o snippet mais útil que há, não é o print_r($var); mas sim var_dump($var); :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

djthyrax: "arrays de arrays" é o mesmo que "arrays multi-dimensionais"

Não é a mesma coisa. Podes dizer é que os "arrays de arrays" estão incluídos nos multidimensionais. Não sei como funcionam as coisas em PHP, mas no geral não é a mesma coisa. Para dar um exemplo tinha que ir para o domínio do C/++/# :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

djthyrax: "arrays de arrays" é o mesmo que "arrays multi-dimensionais"

Não é a mesma coisa. Podes dizer é que os "arrays de arrays" estão incluídos nos multidimensionais. Não sei como funcionam as coisas em PHP, mas no geral não é a mesma coisa. Para dar um exemplo tinha que ir para o domínio do C/++/# :D

Podes explicar como é que são diferentes... por exemplo em C++.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um array de arrays é um array de apontadores para array, em que cada array apontado pode ter um tamanho diferente dos outros. É definido do seguinte modo:

int *arr[10];
arr[0] = new int[10];
arr[1] = new int[20];
//etc...
//acesso:
arr[0][0] = 0;
arr[0][4] = 10;

Enquanto que ao que mostrei acima se pode chamar array multidimensional, acho que este termo se aplica mais correctamente a um array declarado do seguinte modo:

int arr[10][10];
//acesso igual:
arr[0][0] = 0;
arr[0][4] = 10;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois... mas isso não é valido em PHP porque PHP é uma linguagem de mais alto nivel. Ou seja... uma variável não está associada a um numero fixo de bytes num determinado endereço de memória, mas sim ao seu conteudo de forma unívoca.

Mesmo o que acabaste de escrever... fisicamente ambos são arrays, a única diferença é que um contem ponteiros e outro contem inteiros. Mas não faz grande sentido estar a discutir isto pois são linguagens concepcionalmente muito diferentes... em PHP nem sequer se entra com qualquer preocupação sobre alocamento de memória pois este é feito automaticamente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora