$wert1 + $wert2 ... Anzahl der Werte ermitteln ohne Null

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

  • $wert1 + $wert2 ... Anzahl der Werte ermitteln ohne Null

    Hallo!

    ich habe eine Frage: Wie kann ich in PHP folgendes erreichen. Ich habe einen $wert1, $wert2, $wert3, $wert4, $wert5 ich möchte nun die Anzahl der Werte ermitteln, die nicht 0 ist (nehmen wir an $wert3 wäre Null dann sollte das Ergebnis 4 sein)

    kann mir jemand helfen?

    vielen dank!

    sl

  • #2
    Mit einem Array ginge das Kinderleicht. Mit durchnummerierten Variabeln ist das unnötig umständlich und fehleranfällig.

    http://de.php.net/manual/en/function.array-filter.php

    Kommentar


    • #3
      Zitat von sublevel1980 Beitrag anzeigen
      Hallo!

      ich habe eine Frage: Wie kann ich in PHP folgendes erreichen. Ich habe einen $wert1, $wert2, $wert3, $wert4, $wert5 ich möchte nun die Anzahl der Werte ermitteln, die nicht 0 ist (nehmen wir an $wert3 wäre Null dann sollte das Ergebnis 4 sein)
      Das ist eine typische Aufgabe für array_reduce(). Diese Funktion arbeitet aber nur mit Arrays und nicht mit Einzelvariablen. Deswegen müsstest du diese vorher zu einem Array zusammenfassen:

      PHP-Code:
      $vars = array (
          
      $wert1$wert2// ...
      );
      $count array_reduce(
          
      $vars,
          function (
      $count$value) {
              if (
      !== $value) {
                  ++
      $count;
              }
              return 
      $count;
          },
          
      0
      );

      var_dump($count); 
      Ich würde an deiner Stelle darauf verzichten, jedesmal die einzelnen Variablen aufzulisten und, wie dir schon von h3ll empfohlen wurde, direkt Arrays verwenden.
      Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

      Kommentar


      • #4
        suuuper : ) genau das habe ich gesucht! Allerdings ist glaube ich ein kleiner Fehler drin. Es müsste glaube ich

        PHP-Code:
         if (!= $value) { 
        heißen (da war ein =) zu viel.
        Tausend dank an Dich : ))))

        Kommentar


        • #5
          Nein, kein Fehler!

          Wenn $value = false enthält, würde deine Bedingung trotzdem TRUE. Die von fireweasel nicht.

          Aber spricht für dich, dass du nicht einfach blind kopiert hast!

          Kommentar


          • #6
            *lacht* ... man will es ja auch verstehen. Was mich aber irritiert: Die Version von weasel funktioniert nicht. Wenn ich es so mache wie ich es beschrieben habe dann wiederum klappt es. Hmm. Falsch ist richtig und richtig falsch ; )? Hast Du es mal ausprobiert?

            danke sehr!

            sl

            Kommentar


            • #7
              Definiere "funktioniert nicht".

              Kommentar


              • #8
                argh. Mein Fehler. Ich hab die Testvariablen

                PHP-Code:
                $wert1="1" 
                statt
                PHP-Code:
                $wert1=
                aufgebaut.

                *omg*. Aber warum »funktioniert« das andere auch mit meiner Änderung?

                Kommentar


                • #9
                  PHP: Vergleichs-Operatoren - Manual

                  Kommentar


                  • #10
                    Zitat von sublevel1980 Beitrag anzeigen
                    suuuper : ) genau das habe ich gesucht!
                    Hast du bestimmt nicht. Variable Variablen sind sehr böse und auf jeden Fall zu meiden! Du wirst sonst in Zukunft noch viele Probleme damit bekommen und im Endeffekt musst du es dann doch ändern. Nur wird es aufwändiger, je später du das machst.

                    Kommentar


                    • #11
                      @ TobiaZ: Danke sehr!
                      @ h3ll: habe ich nicht? Warum nicht?

                      Kommentar


                      • #12
                        Zitat von sublevel1980 Beitrag anzeigen
                        @ h3ll: habe ich nicht? Warum nicht?
                        Hab ich doch schon erklärt.

                        Kommentar

                        Lädt...
                        X