Avatar billede Svane55 Nybegynder
17. juni 2009 - 23:13 Der er 1 løsning

Array problem

Array problemer
Jeg skal have nogle xml data over i et array.

min kode til dette ser sådan ud:

--------------------
function XmlToArray()
    {
    $file_url = $this->XmlConnectionUrl(0);
    $xmlFileData = file_get_contents($file_url);
    $xmlData = new SimpleXMLElement($xmlFileData);
       
       
    foreach($xmlData->questions->question as $question)
    {
            foreach($question->answers->answer as $answer)
        {
            if($answer->attributes()->uid == 1153)
            {
                $arrayAnswer[] = $answer;
            }
        }
           
$countries[] = array($question->question_title,$question->question_text,$arrayAnswer);   
           
    }
       
        return $countries;
       
    }

-------------

udsnit af xml:

<?xml version="1.0" encoding="UTF-8" ?>
- <survey>
- <questions>
- <question>
  <question_title>XXX</question_title>
  <question_type>MetricQuestionSet</question_type>
- <question_text>
- <![CDATA[
      1. 1 XXXX

  ]]>
  </question_text>
- <answers>
  <answer uid="1153" value="15,0">I knew nothing</answer>
  <answer uid="1153" value="30,0">I knew little</answer>
  <answer uid="1153" value="25,0">I knew some</answer>
  <answer uid="1153" value="25,0">I knew a lot</answer>
  <answer uid="1153" value="5,0">Don't know / do not wish to answer</answer>
  <answer uid="1269" value="10,0">I knew nothing</answer>
  <answer uid="1269" value="20,0">I knew little</answer>
  <answer uid="1269" value="30,0">I knew some</answer>
  <answer uid="1269" value="20,0">I knew a lot</answer>
  <answer uid="1269" value="20,0">Don't know / do not wish to answer</answer>
</answers>
  </question>
- <question>
  <question_title>XXX</question_title>
  <question_type>MetricQuestionSet</question_type>
- <question_text>
- <![CDATA[
      1. 2 XXX
  ]]>
  </question_text>
- <answers>
  <answer uid="1153" value="45,0">Very concerned</answer>
  <answer uid="1153" value="15,0">Fairly concerned</answer>
  <answer uid="1153" value="30,0">Slightly concerned</answer>
  <answer uid="1153" value="10,0">Not concerned</answer>
  <answer uid="1153" value="0,0">Don't know / do not wish to answer</answer>
  <answer uid="1269" value="40,0">Very concerned</answer>
  <answer uid="1269" value="10,0">Fairly concerned</answer>
  <answer uid="1269" value="10,0">Slightly concerned</answer>
  <answer uid="1269" value="30,0">Not concerned</answer>
  <answer uid="1269" value="10,0">Don't know / do not wish to answer</answer>
</answers>
  </question>
  </questions>
  </survey>

--------

Mit problem er at $arrayAnswer kommer til at indeholde svarene fra både spørgsmål 1 og spørgsmål 2.

Jeg vil gerne lave det sådan at $countries[0][2] kun indeholder svarmulighederne knyttet til spørgsmål 1 og $countries[1][2] fra spørgsmål 2 osv.

Hvordan løser jeg dette?
Avatar billede ebusiness Nybegynder
18. juni 2009 - 00:35 #1
Det spørgsmål var godt nok en del simplere end det så ud. Du skal bare resette arrayet en gang mellem hvert spørgsmål.

$countries[] = array($question->question_title,$question->question_text,$arrayAnswer);
$arrayAnswer=array();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester