Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda simples com mapa em PHP


Diego.Lopes

Pergunta

Olá Pessoal,

Sou novo em programação PHP e estou precisando de uma ajuda.

Gostaria de saber se em PHP existe algo equivalente a um mapa em java?

Procurei bastante e não achei nada parecido.

Preciso saber como manipular uma variável desse tipo:

{1:[2,4,3,1],2:1,3:3,4:4,5:5}

Existe essa possibilidade?

Obrigado e aguardo resposta

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

Olá Pessoal,

consegui fazer o que eu estava procurando.

Agora o problema já é outro.

Eu sei que é possível através de uma string transformar em um array.

Mas, se a string for desse jeito:

$palavra = '1 => array(1 => 1),2 => array(2 => 1, 2 => 2),3 => array(3 => 1, 3 => 3)';

$array = array($palavra);

echo $array[1][1]; // aqui não aparece nada

Isso é possível?

Link para o comentário
Compartilhar em outros sites

  • 0

O que eu estou tentando dizer é se é possível através de uma string como essa:

$palavra = '1 => array(1 => 1),2 => array(2 => 1, 2 => 2),3 => array(3 => 1, 3 => 3)';

Eu transforme em um array que fique dessa forma:

array(1 => array(1 => 1),2 => array(2 => 1, 2 => 2),3 => array(3 => 1, 3 => 3));

Caso contrário, existe alguma outra forma de transformar uma string em um array, mas que fique mais ou menos desse jeito? Ou seja, uma chave apontando para um array

Link para o comentário
Compartilhar em outros sites

  • 0

Humm...

você quiz dizer: Se a string que está atribuida com aquele valor

$palavra = '1 => array(1 => 1),2 => array(2 => 1, 2 => 2),3 => array(3 => 1, 3 => 3)';

ao converter pra array, automaticamente ficar com aqueles indices.

Rapaz.. Ter tem, e tem diversas formas.

Eu nunca fiz isso porém eu vou te da umas ideias que pode ajudar ou não.

você transformando essa string "$palavra" em array e tirar as aspas já faz um array.

Ex: $palavra = array (1 => array(1 => 1),2 => array(2 => 1, 2 => 2),3 => array(3 => 1, 3 => 3))

ai tem diversas formas você pode fazer funções.. e etc. cara.. entra nesse site aqui e da uma olhada

http://www.php.net/manual/pt_BR/function.array.php

Espero ter te ajudado..

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

pode usar explode para separar as parte que o interessa o o str replace para escrever o que quer no lugar de algum delimitador ou dependendo da situação o substr

mas isso você vai precisa ver o que se adequa na sua nescessidade... você consegue sim transforma o array em uma string como uma string em uma array funções tem é so estudalas e consegui adptar a o seu uso...

Link para o comentário
Compartilhar em outros sites

  • 0

Ok.

Achei um jeito de manipular a String.

Agora o que eu preciso é acessar os índices. pois estou tendo dificuldade com a hierarquia.

$lista = array(1 => array("a" => "a"),2 => array("b" => "a", "b" => "b"),3 => array("c" => "a", "c" => "c"));

Como que eu faço pra imprimir:

a - a

b - a, b - b

c - a, c - c

?

Talvez tenha outra forma de fazer um array. Vou explicar o que eu preciso.

Eu quero um array, que tenha vários índices(1, 2, 3), e nesses indices, tenham uma lista de valores, e que eu possa acessar tanto o índice, quanto os valores

Editado por Diego.Lopes
Link para o comentário
Compartilhar em outros sites

  • 0

array se não me falha a memoria começa em 0

sendo assim

$lista[0][0] deve conter a/a

$lista[0][1] deve conte b/a

isso seguindo o que você postou ai o que no meu conceito logico ta errado já que o primeiro array deve receber a b c d e os demais tabme ai cruzando informações você monta como quiser como um sistema de matriz.

na verdade não entendo o que você quer fazer com isso mas quanto aos indices você vai tabalhar assim

no teu caso em especifico soa 3 array numa variavel então

$lista[0][0][0] vai conter o valor de a / b /c

acho que tem como entender o que to querendo dizer uhsahusauhs...

Link para o comentário
Compartilhar em outros sites

  • 0

Hum...sinceramente não entendi. =)

Mas vou tentar explicar de uma outra maneira.

Vamos supor que eu tenho um jogo no qual eu preciso jogar um dado até que o valor que cair ser igual ao da jogada da vez. Ao final, eu monto uma lista.

Exemplo:

Jogada | Valores

1 3,2,5,1

2 2

3 1,6,5,3

4 1,4

5 1,2,5

6 3,4,1,3,4,1,2,6

Então ao final deve ter:

o índice 0 - 3,2,5,1

o índice 1 - 2

o indice 3 - 1,6,5,2

e assim por diante.

Então, como montar um array dessa maneira e acessar as posições que eu quiser?

Link para o comentário
Compartilhar em outros sites

  • 0

Olha fiz um exemplo bem simples e pratico aqui para tu saca como funciona

$array = array(1 => array("a" => "a","b" => "b","c" => "c"),2 => array("b" => "a","c" => "b"),3 => array("c" => "a","c" => "c"));
var_dump($array);
esse var_dump retorno isto. (entenda - no array 3 colocamos o campo c recebendo 2 vezes ele sobreescreve sendo assim o resultado esta abaixo é c e n a) (no caso do array 1 e 2 eu coloqueis os campos distintos assim ele já imprime para mim os valores.)
array
  1 => 
    array
      'a' => string 'a' (length=1)
      'b' => string 'b' (length=1)
      'c' => string 'c' (length=1)
  2 => 
    array
      'b' => string 'a' (length=1)
      'c' => string 'b' (length=1)
  3 => 
    array
      'c' => string 'c' (length=1)

agora entenda como você vai pode utilizar este array.

se eu der echo $array[2]['c'];

vai me retorna

o array 2 com o valor do campo c que é b

qualquer duvida so fala

Editado por JaguA
Link para o comentário
Compartilhar em outros sites

  • 0

Hum, entendi perfeitamente.

Porém, não sei como é que vai ser pra fazer o que eu quero, pois pelo que eu entendi ele vai sempre sobrescrever.

Saca só. Vou colocar embaixo como eu quero que seja lido

$array = array(1 => array(2 => 3,2 => 1,2 => 2));

Primeira Jogada(Só vai para outra jogada após acertar o número certo) - Era pra ser 2 e foi três, depois era pra ser 2 e foi 1, depois era pra ser 2 e foi 2.

Existe alguma maneira de não ser sobrescrito?

Link para o comentário
Compartilhar em outros sites

  • 0

$array = array('Primeira Jogada' => 3, array('Segunda Jogada' => 1, array('Terceira Jogada' => 2)));
var_dump($array);

//resultado do var_dump

array
  'Primeira Jogada' => int 3
  0 => 
    array
      'Segunda Jogada' => int 1
      0 => 
        array
          'Terceira Jogada' => int 2

Link para o comentário
Compartilhar em outros sites

  • 0

Vou copiar o meu outro post

Vamos supor que eu tenho um jogo no qual eu preciso jogar um dado até que o valor que cair ser igual ao da jogada da vez. Ao final, eu monto uma lista.

Exemplo:

Jogada | Valores

1------- |3,2,5,1

2--------|2

3------- |1,6,5,3

4------- |1,4

5------- |1,2,5

6------- |3,4,1,3,4,1,2,6

Então ao final deve ter:

o índice 0 - 3,2,5,1

o índice 1 - 2

o indice 3 - 1,6,5,2

e assim por diante.

Então, como montar um array dessa maneira e acessar as posições que eu quiser?

Link para o comentário
Compartilhar em outros sites

  • 0

Você pode usar loop assim atribui loop para manegar o indice e assim não sobescrever

como eu postei anteriormente

Jogada 1 -> 1 Lançamento = 4 => 2 Lançamento = 3

crie um loop para ir acrescentnado o numero na frente do lançamento

para ele parar o loop coloque a condição de quando o Numero 5 for = a 5 de valor em algum array.

sendo assim idependente se o array vai trata os indice com outro nome n vai dexa de ser os lançamentos ...

Link para o comentário
Compartilhar em outros sites

  • 0

Hummm..

Ou então.. se você quer quer não sobrescreva cria uma array onde fica os valores antigos e depois os resgata..

tipo a mesma ideia que você faz pra.

$aux = array();
atribui o valor antigo nelea
exp.         $aux =  array([2]['c']);
depois resgata.
$array[2]['c'] = $aux;

Não sei isso vai te ajudar + pelos menos é uma ideia.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...