Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem mit einem Array und der for-Schleife.

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Problem mit einem Array und der for-Schleife.

    Moin php-forum,

    also ich habe folgendes problem:
    ich nutze einen Code der überprüfen soll ob ein Wert/Name im Array vorhanden ist. So weit so gut:

    PHP-Code:
    for($i=0$i<sizeof($friends); $i++)
        {
            if (
    $friends[$i] !== $user)
            {
                echo 
    "<center><h4>Dieser User ist nicht in deiner Freundesliste vorhanden!</h4></center>";
                 
    mysql_close($connection);
                exit;
            }
        } 
    Da der User nicht in jedem Array drin ist, gibt er natürlich immer die Meldung aus. Nun meine Frage, wie mache ich das, dass er alles durchsucht und nur die Meldung ausgibt wenn er es einmal gefunden hat? Ich habe das ein wenig komisch erklärt, da ich nicht weiß wie. Wenn Fragen auftauchen sollten, bitte fragt!!

  • #2
    Suchst du [MAN]in_array[/MAN]?
    [URL]http://hallophp.de[/URL]

    Kommentar


    • #3
      Also zum Ersten solltest du dir die Funktion [MAN]in_array()[/MAN] anschauen. Das erspart dir die Schleife.

      In deinem Beispiel gibt es doch nur ein Array?! Entweder er ist drin oder nicht.

      Kommentar


      • #4
        Tja, weiß auch nicht, ob ich Dich verstanden habe, aber warum änderst Du die Zeile

        PHP-Code:
        if ($friends[$i] !== $user
        nicht in

        PHP-Code:
        if ($friends[$i] == $user
        dann geht er nur in die IF-Abfrage, wenn die beiden Eingaben identisch sind! Meinst das? Für Dich dürfte auch in_array() interessant sein.

        Wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          Also ich mache eine Freundesliste das in einem Array gespeichert wird. In meinem Fall: friends[]. Dieser Code oben ist von einer Freund entfernen .php. Also, man gibt den Namen des Freundes ein und das Script überprüft ob der Freund auch vorhanden ist. Natürlich kann jetzt nicht im gesammten Array dieser Name stehen, deshalb soll es nur schauen ob es wenigstens einmal drin ist.

          In deinem Beispiel gibt es doch nur ein Array?!
          Ja das ist der einzige!!

          Für Dich dürfte auch in_array() interessant sein.
          Cool, dann brauche ich ja keine for-Schleife.

          Kommentar


          • #6
            a)
            Die Lösung ist dir jetzt schon zweimal genannt worden

            b)
            Schleifen über Arrays macht man mit foreach() und nicht mit for()

            c)
            Rechenoperationen im Kopf einer for-Schleife werden bei jedem Schleifendurchlauf durchgeführt und sind daher Performancekiller ( hier: sizeof() )
            [PHP]if ($var != 0) {
            $var = 0;
            }[/PHP]

            Kommentar


            • #7
              ist das so richtig??

              PHP-Code:
              if (!in_array($user$friends))
                  {
                      echo 
              "<center><h4>Dieser User ist nicht in deiner Freundesliste vorhanden!</h4></center>";
                      
              mysql_close($connection);
                      exit;
                  } 

              Kommentar


              • #8
                Funktioniert es denn?
                [URL]http://hallophp.de[/URL]

                Kommentar


                • #9
                  jaa!! vielen dank an euch alle. echt spitzen forum!!

                  edit: ehm mal eine andere frage: ich habe einen string der variablen mit trennzeichen hat. das letzten zeichen ist immer |. wie kann ich das am ende rausschneiden?

                  ps: mit substr() kann man glaub ich nur die vorderen abschneiden. bin mir aber nicht sicher.

                  Kommentar


                  • #10
                    str_replace
                    Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                    Kommentar


                    • #11
                      rtrim
                      [COLOR="#F5F5FF"]--[/COLOR]
                      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                      [COLOR="#F5F5FF"]
                      --[/COLOR]

                      Kommentar


                      • #12
                        das problem ist das ich mehrere "|" habe und nur den letzten löschen will.

                        sorry, aber noch ein problem:
                        PHP-Code:
                        $link 'Bitte nutze diesen Link um deine Anmeldung zu vervollständigen.<p></p>Link: <a href="test.de/activate.php?username="'.$username.'"&code="'.$code.'">Account aktivieren</a>'
                        aber es wird immer nur: "test.de/activate?username=", ausgegeben.

                        Kommentar


                        • #13
                          ps: mit substr() kann man glaub ich nur die vorderen abschneiden. bin mir aber nicht sicher
                          Wenn man sich nicht sicher ist, was ein Befehl kann, dann schaut man einfach ins Manual. Das ist sehr einfach:
                          In das Browser-adressfeld einfach eingeben php.net/ und dahinter den gewünschten Befehl, hier also: php.net/substr
                          Dann siehst du, dass das Dinge noch sehr viel mehr kann, als du grade denkst.
                          [PHP]if ($var != 0) {
                          $var = 0;
                          }[/PHP]

                          Kommentar


                          • #14
                            rtrim
                            sorry, aber noch ein problem:
                            PHP-Code:
                            $link = 'Bitte nutze diesen Link um deine Anmeldung zu vervollständigen.<p></p>Link: <a href="test.de/activate.php?username="'.$username.'"&code="'.$cod e.'">Account aktivieren</a>';
                            aber es wird immer nur: "test.de/activate?username=", ausgegeben.
                            Nur hat das NULL mit der anderen Frage zu tun.
                            [COLOR="#F5F5FF"]--[/COLOR]
                            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                            [COLOR="#F5F5FF"]
                            --[/COLOR]

                            Kommentar


                            • #15
                              ok vielen dank, das habe ich übersehen das man it substr() auch hintere teile abschneiden kann. nun zu meinem aktuellen problem:


                              PHP-Code:
                              $link 'Bitte nutze diesen Link um deine Anmeldung zu vervollständigen.<p></p>Link: <a href="test.de/activate.php?username="'.$username.'"&code="'.$code.'">Account aktivieren</a>'
                              ich weiß einfach nicht was daran falsch sein könnte!!

                              Nur hat das NULL mit der anderen Frage zu tun.
                              ich dachte es wäre besser sie noch hier zu fragen als jetzt seperat nochmal ein thema zu eröffnen.

                              Kommentar

                              Lädt...
                              X