Ankündigung

Einklappen
Keine Ankündigung bisher.

Arrays vergleichen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Arrays vergleichen

    Hallo,
    habe ein Problem beim Vergleichen von Arrays. Habe in ein PHP -Script ein XML eingelesen, welche wie folgt aussieht (Ausschnitt):
    Code:
    <record ID="1" date="02.03.2010" time="00:10:59">
    <sensor ID="101" v="18.70"/>
    <sensor ID="103" v="10.50"/>
    <sensor ID="206" v="30.00"/>
    <sensor ID="501" v="24.33"/>
    <sensor ID="502" v="3.61"/>
    </record>
    −
    <record ID="1" date="02.03.2010" time="00:11:59">
    <sensor ID="101" v="18.60"/>
    <sensor ID="103" v="10.40"/>
    <sensor ID="206" v="30.00"/>
    <sensor ID="501" v="24.33"/>
    <sensor ID="502" v="3.61"/>
    </record>
    −
    <record ID="1" date="02.03.2010" time="00:12:59">
    <sensor ID="101" v="18.50"/>
    <sensor ID="102" v="23.30"/>
    <sensor ID="103" v="10.80"/>
    <sensor ID="201" v="26.30"/>
    <sensor ID="202" v="45.00"/>
    <sensor ID="203" v="231.00"/>
    <sensor ID="204" v="231.60"/>
    <sensor ID="205" v="15.50"/>
    <sensor ID="206" v="30.00"/>
    <sensor ID="301" v="12.90"/>
    <sensor ID="401" v="45.00"/>
    <sensor ID="402" v="353.00"/>
    <sensor ID="501" v="24.64"/>
    <sensor ID="502" v="3.57"/>
    <sensor ID="503" v="13.00"/>
    <sensor ID="504" v="73.83"/>
    <sensor ID="505" v="9.89"/>
    <sensor ID="506" v="11.27"/>
    <sensor ID="507" v="259.23"/>
    <sensor ID="508" v="0.00"/>
    <sensor ID="509" v="0.00"/>
    <sensor ID="510" v="0.00"/>
    <sensor ID="511" v="0.00"/>

    Nun will ich mittels Foreach alle Daten in eine Tabelle eintragen:
    PHP-Code:
     foreach($xml->record as $record
         {
         echo 
    "<td>".$record['ID']."</td><td>" .$record['date']."</td><td>".$record['time']."</td><td>";
          
         
              
         } 
    Das funktioniert auch ganz gut, nur hat das (z.B) Array1 manchmal die id 102 und manchmal 103.
    Meine Frage ist jetzt, wie in einer Spalte nur die Daten ausgeben bei denen das Attribut (z.B.) ID="102" ist? Ich habe keine Idee wie man das vergleichen kann, ein Ansatz von mir dafür ist:
    PHP-Code:
    if($record->sensor['ID']=='103')
         { 
         echo 
    $record->sensor[1]['v'] . "</td><td>"
    Ach und NEIN, ich kann die XML nicht abändern, die wird so automatisch erstellt in weiter Ferne.

  • #2
    Erstell doch einfach ein assoziatives Array mit ID als Schlüssel?

    Kommentar


    • #3
      Ja aber zeig mir das mal bitte anhand meines Problems

      Kommentar


      • #4
        Ja aber zeig mir das mal bitte anhand meines Problems
        *Lösung heisch*

        Kommentar


        • #5
          dann halt nicht

          Kommentar


          • #6
            Wenn Du Ansätze zeigst, helfen wir Dir gerne, aber wir posten ungern komplette Lösungen, weil dadurch auch nicht wirklich ein Lerneffekt erzielt wird!

            http://de.php.net/manual/de/book.array.php

            Wolf29

            Kommentar


            • #7
              ja na hab ja meinen ansatz gepostet, mein neuer ansatz nach dem tipp mit dem assoziativen array lautet:
              PHP-Code:
                   if  ($record->sensor["ID"] == "103")
                     {
                     echo 
              $record->sensor['ID']['v'] . "</td><td>";
                     } 
              Also er soll all die ID's ausspucken, welche 103 sind.

              Kommentar


              • #8
                Wie soll $record->sensor["ID"] == "103" sein, wenn DU gleichzeitig unten $record->sensor["ID"] als Array auswertest!

                Kommentar


                • #9
                  Naja der Befehl soll lauten, wenn sonsor[id] 103 ist, dann setze das dazugehörige [v] (steht für value) in die Tabellenzelle.

                  Kommentar


                  • #10
                    Was es bedeuten soll ist mir klar. So geht es aber nicht.

                    http://www.php.de/php-einsteiger/489...rundlagen.html

                    Kommentar


                    • #11
                      boah ich kann grundlagen, nur ist mein problem ich weis nicht wie ich formuliere, das nur die Elemente angezeigt werden wo die id 103 ist!
                      Sonst klappt sowas wie ich es hier formuliert habe, nur bei dem Array nicht.

                      Kommentar


                      • #12
                        boah ich kann grundlagen
                        Sieht man deutlich.
                        PHP-Code:
                             if  ($record->sensor["ID"] == "103")
                               {
                               echo 
                        $record->sensor['ID']['v'] . "</td><td>";
                               } 

                        Kommentar


                        • #13
                          Wenn mir keiner helfen will dann schliesst den thread .

                          Kommentar


                          • #14
                            1:50 Studen Geduld. Das muss neuer Rekord sein

                            Kommentar


                            • #15
                              Hab mir ja schon ne Menge Tutorials rund um Arrays angesehen, aber ich finde einfach nicht raus wie das geht, deswegen dachte ich mir, kann im Forum hier jemand helfen, ohne das weitere Tutorial-Links oder Bemerkungen kommen.

                              Kommentar

                              Lädt...
                              X