array miteinander vergleichen!

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

  • array miteinander vergleichen!

    Hallo!

    Habe eine Tabelle. Die Daten lege ich in ein Array. Nun soll geprüft werden, ob innerhalb dieser Tabelle bzw. Array Inhalte gleich sind und wenn ja sollen diese id's gespeichert werden.
    Leider klappt es bei mir nicht. Es werden alle Id's aus.
    PHP-Code:
    $z 0;
    while (
    $daten mysql_fetch_array($erg)){

          
    $route_id[$z] = array($daten['id'],$daten['benutzername'],$daten['von'],
    $daten['nach']) ;
          
    $anzahl count($route_id);
        
           
           for(
    $i=1;$i<$anzahl;$i++){

                if(
    $route_id[$z][2] == $route_id[$i][2]){
                   
    $id $route_id[$z][0];
                     echo 
    id;
                    
                }       
          
       }   

       
    $z++;
        


  • #2
    PHP-Code:
    $anzahl count($route_id);
        
           
           for(
    $i=1;$i<$anzahl;$i++){ 
    Sowas geht auch einfach mit foreach.
    PHP-Code:
    echo id
    Fehlt da nicht was...
    Müsste $id nicht nach jedem Durchlauf von while gelöscht werden (unset)? Bzw empfiehlt sich nich $id[] = ..., halt Verwendung von $id als Array?

    PS: Hm, gehts nicht auch mit MySQL?

    Kommentar


    • #3
      PHP-Code:
      $arr array_unique($route_id);
      $diff array_diff_key($route_id,$arr); 
      Sollte ein Array zurückgeben mit den Schlüsseln die in $route_id aber nicht in $arr vorkommen. Sprich alle die wegen doppeltem Vorkommen entfernt wurden.
      Hilft dir das weiter ?

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Ich glaube, das Problem ist meine if Bedingung, denn die Ausgabe sind alle id's, das bedeutet das der vergleich immer "true" ist, was aber nicht der Fall ist.

        Seltsam ist auch meine Zählervariale $z, sie sollte bei der Überprüfung auf '0' stehen, sie ist auf '1' gesetzt.

        Es mit sql zu lösen, da habe ich leider keinen Ansatz gefunden. Hier werden immer 2 Tabellen in Betracht gezogen.

        Der Ansatz müßte doch korekt sein, ich habe eine feste Array Position und kann die wiederum mit einem "Zhäler-Array" vergleichen oder ist der Ansatz völlig verkehrt?!

        Kommentar


        • #5
          Der Ansatz müßte doch korekt sein, ich habe eine feste Array Position und kann die wiederum mit einem "Zhäler-Array" vergleichen oder ist der Ansatz völlig verkehrt?!
          Das glaube ich nicht Tim Du machst den Vergleich ja bevor das Array überhaupt komplett aufgebaut ist (der Vergleich findet ja innerhalb der while-Schleife statt, die die MySql Ressource ausliest). Zu diesem Zeitpunkt ist das Array aber keinesfalls komplett aufgebaut.
          Wenn schon würde das ausserhalb der Schleife mehr Sinn machen, denn dann ist das Array komplett mit allen Resultaten gefüllt.

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            wie kann es überhaupt sein, das eine ID doppelte vorkommt? ist sie dann nicht irgendwie zweckentfremdet?
            PHP Forum
            Sessions in PHP
            Loginsystem mit PHP erstellen

            Kommentar


            • #7
              Hi,

              was spricht gegen:
              Code:
              SELECT * FROM tabelle1 as t1 ,tabelle2 as t2 WHERE
                  t1.benutzername = t2.benutzername OR
                  t1.von = t2.von OR
                  t1.nach = t2.nach OR
                 ...
              ?

              greets
              (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

              Kommentar

              Lädt...
              X