Diego.Lopes Postado Maio 22, 2012 Denunciar Share Postado Maio 22, 2012 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.Lopes Postado Maio 22, 2012 Autor Denunciar Share Postado Maio 22, 2012 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 nadaIsso é possível? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rodrigo Mafra Postado Maio 22, 2012 Denunciar Share Postado Maio 22, 2012 cara eu n estou entendendo muito bem o que você está querendo dizer..porém não existe uma matriz ai.. só existe o array com 1 indice que é o '0'.da um print_r() que tu vê. falow Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.Lopes Postado Maio 23, 2012 Autor Denunciar Share Postado Maio 23, 2012 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rodrigo Mafra Postado Maio 23, 2012 Denunciar Share Postado Maio 23, 2012 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.phpEspero ter te ajudado..Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.Lopes Postado Maio 23, 2012 Autor Denunciar Share Postado Maio 23, 2012 Certo.Mas vamos supor que essa string já seja pré-definida e não possa ser apenas alterada apagando as aspas.Existe alguma função que eu possa apagar e transformar em um array? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rodrigo Mafra Postado Maio 23, 2012 Denunciar Share Postado Maio 23, 2012 Existe essa função aqui...str_split();http://www.php.net/manual/pt_BR/function.str-split.phpda uma estudada nela e vê se dá pra você fazer o que você quer..abraços.. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 23, 2012 Denunciar Share Postado Maio 23, 2012 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.Lopes Postado Maio 23, 2012 Autor Denunciar Share Postado Maio 23, 2012 (editado) 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 - ab - a, b - bc - 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 Maio 23, 2012 por Diego.Lopes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 23, 2012 Denunciar Share Postado Maio 23, 2012 array se não me falha a memoria começa em 0sendo assim$lista[0][0] deve conter a/a$lista[0][1] deve conte b/aisso 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 /cacho que tem como entender o que to querendo dizer uhsahusauhs... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.Lopes Postado Maio 23, 2012 Autor Denunciar Share Postado Maio 23, 2012 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 | Valores1 3,2,5,1 2 23 1,6,5,34 1,45 1,2,56 3,4,1,3,4,1,2,6Então ao final deve ter:o índice 0 - 3,2,5,1o índice 1 - 2o indice 3 - 1,6,5,2e assim por diante.Então, como montar um array dessa maneira e acessar as posições que eu quiser? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 23, 2012 Denunciar Share Postado Maio 23, 2012 (editado) 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 é bqualquer duvida so fala Editado Maio 23, 2012 por JaguA Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.Lopes Postado Maio 23, 2012 Autor Denunciar Share Postado Maio 23, 2012 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 23, 2012 Denunciar Share Postado Maio 23, 2012 $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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.Lopes Postado Maio 23, 2012 Autor Denunciar Share Postado Maio 23, 2012 Ainda não é do jeito que eu quero.Desse jeito uma jogada só é feita uma única vez. Preciso que seja feita várias vezes e pelo que eu entendi, ele sobrescreve.Então gostaria de saber se existe alguma maneira de não sobrescrever Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Maio 24, 2012 Denunciar Share Postado Maio 24, 2012 O que exatamente você está tentando fazer? Talvez exista outra alternativa.Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Diego.Lopes Postado Maio 24, 2012 Autor Denunciar Share Postado Maio 24, 2012 Vou copiar o meu outro postVamos 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 | Valores1------- |3,2,5,1 2--------|23------- |1,6,5,34------- |1,45------- |1,2,56------- |3,4,1,3,4,1,2,6Então ao final deve ter:o índice 0 - 3,2,5,1o índice 1 - 2o indice 3 - 1,6,5,2e assim por diante.Então, como montar um array dessa maneira e acessar as posições que eu quiser? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JaguA Postado Maio 24, 2012 Denunciar Share Postado Maio 24, 2012 Você pode usar loop assim atribui loop para manegar o indice e assim não sobescrevercomo 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 ... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rodrigo Mafra Postado Maio 25, 2012 Denunciar Share Postado Maio 25, 2012 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Diego.Lopes
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
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.