Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luiz Henrique

array bidimensional

Recommended Posts

Olá pessoas,

 

Estou lendo um monte de artigos sobre array bidimensional mas nada esclarecedor, então pergunto aqui uma forma prática de como eu faço para criar o array em questão com informações abaixo:

 

XML:

<dados>
   <pergunta texto="Pergunta?">
       <opcao texto="Resposta 1" verdadeiro="nao"/>
       <opcao texto="Resposta 2" verdadeiro="nao"/>
       <opcao texto="Resposta 3" verdadeiro="sim"/>
   </pergunta>
   .....
</dados>

 

AS 2.0

 

Eu declaro o array:

var $perguntas:Array = new Array();

var $opcao :Array = new Array();

var $verdadeiro:Array = new Array();

 

e tem toda a programação para fazer a leitura do XML que não importa isto é simples, aí para armazenar os dados contidos no array eu faço isso:

 

$perguntas[$cont] = ($arquivo.childNodes[0].childNodes[$i].childNodes[$cont].attributes.texto);

$opcao [$cont] = ($arquivo.childNodes[0].childNodes[$i].childNodes[$cont].attributes.texto);

$verdadeiro[$cont] = ($arquivo.childNodes[0].childNodes[$i].childNodes[$cont].attributes.texto);

 

Tem algumas condições dentro do laço para pegar a pergunta e as 3 alternativas, funciona perfeitamente, o problema é que são + ou - 50 questões e eu faço um random dentro do array para embaralhar as questões cada vez que se chega ao fim, ou seja quando a 50ª for respondida ao invés de iniciar da 1 é feito um random, para não ter uma sequência cada vez que iniciar o aplicativo, e justamente este random obviamente da problema, porque eu dou random nas perguntas mas não posso dar nas opções de resposta porque se são 50 perguntas, respostas são 150, em hipótese alguma eu posso dar randim nisso hahaha...

 

Enfim, uma solução para isto eu acredito que seria um array bidimensional, mas não faço ideia de como funcionaria isso!

 

eu precisaria de algo assim, eu não sei como monta este tipo de array, então é só uma ilustração:

 

$perguntras:Array = new Array("pergunta 1, resposta 1, resposta 2, resposta 3, errada, errada, correta","pergunta 2, resposta 2.1, resposta 2.2, resposta 2.3, errada, errada, correta");

 

eu precisaria colocar dentro do mesmo array a pergunta as alternativas e ainda qual é a resposta correta, mas como?

 

Alguma dica?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Axo que isso resolve meu problema:

 

 

var $array:Array = Array(
					 Array("Pergunta 1", "resposta 1.1", "resposta 1.2", "resposta 1.3", "nao", "nao", "sim"),
					 Array("Pergunta 2", "resposta 2.1", "resposta 2.2", "resposta 2.3", "sim", "nao", "nao"));
$cont = 0;
for ($i=0; $i<$array.length; $i++) {
trace($array[$cont][0]);
for ($c=1; $c<4; $c++) {
	trace($array[$cont][$c]+" : "+$array[0][$c+3]);
}
$cont++;
}

 

Surgiu um problema, da forma que eu fiz parece fácil, ams não estou conseguindo inserir os dados dentro do array, como eu faço?

 

estou tentando assim

 

$conte = 0;
$array[$conte] = ($arquivo.childNodes[0].childNodes[$i].attributes.texto);
trace($array[$conte]);// ok funcionou
for ($c=1; $c<4; $c++) {
$array[$conte][$c].push($arquivo.childNodes[0].childNodes[$i].childNodes[$o].attributes.texto);
       // ou assim $array[$conte][$c] = ($arquivo.childNodes[0].childNodes[$i].childNodes[$o].attributes.texto);
trace($array[$conte][$c]); // mas não funciona
}

como faço para colocar os dados dentro do array interno? ex $array("Pergunta("resposta 1","resposta 2","resposta 3")")?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$conte = 0;
$array[$conte] = ($arquivo.childNodes[0].childNodes[$i].attributes.texto);
trace($array[$conte]);// ok funcionou
for ($c=1; $c<4; $c++) {
$array[$conte][$c].push($arquivo.childNodes[0].childNodes[$i].childNodes[$o].attributes.texto);
       // ou assim $array[$conte][$c] = ($arquivo.childNodes[0].childNodes[$i].childNodes[$o].attributes.texto);
trace($array[$conte][$c]); // mas não funciona
}

 

Aparentemente, o único erro é na definição da variável $c, que deve ser 0 e não 1. Isso porque Arrays usam índice baseado em 0.

$conte = 0;
$array[$conte] = ($arquivo.childNodes[0].childNodes[$i].attributes.texto);
trace($array[$conte]);// ok funcionou
for ($c=0; $c<4; $c++) {
$array[$conte][$c].push($arquivo.childNodes[0].childNodes[$i].childNodes[$o].attributes.texto);
       // ou assim $array[$conte][$c] = ($arquivo.childNodes[0].childNodes[$i].childNodes[$o].attributes.texto);
trace($array[$conte][$c]); // mas não funciona
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.