Array - Letztes Feld auslesen und Zahl prüfen

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

  • Array - Letztes Feld auslesen und Zahl prüfen

    Hallo,
    ich habe einen Seitenplan in einer Datenbank.
    Z.b. habe ich die Seiten 1,2,3 und 5.
    Diese Seiten sind im Array $seiten gespeichert.
    Jetzt will ich wissen, wie die letzte und somit auch höchste Zahl in meinem Array heisst, damit ich eine for-Schliefe laufen lassen kann in der ich bis zu dieser höchsten Zahl zähle und rausfinde, welche zahl fehlt.
    Wie bestimme ich die höchste Zahl im Array?:
    PHP-Code:

    for($zahl 1$zahl <= $hoechste_zahl$zahl++)
    {
        if(!
    in_array($zahl$seiten[$site]))
        {
            echo 
    $zahl." fehlt<br>";
        }


  • #2
    Hallo,

    http://php.net/max

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Das habe ich schon versucht! Das Problem ist, dass ich ein mehrdemensionales Array habe. Irgendwie geht dass dann nicht.
      $seiten[$seite][$position]
      Und ich benötige die höchte zahl von $seite
      PHP-Code:
      Array
      (
          [
      1] => Array
              (
                  [
      8] => Array
                      (
                          [
      uid] => 465
                          
      [site] => 1
                          
      [headline] => Einstellungen
                          
      [format] => halb
                      
      )

                  [
      9] => Array
                      (
                          [
      uid] => 488
                          
      [site] => 1
                          
      [headline] => Doku
                          
      [format] => halb
                      
      )

              )

          [
      2] => Array
              (
                  [
      6] => Array
                      (
                          [
      uid] => 446
                          
      [site] => 2
                          
      [headline] => Bilder
                          
      [format] => ganz
                      
      )

              )

      ........ 

      Kommentar


      • #4
        Also willst du den höchsten Key? Dann halt max(array_keys()).
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Oh man, stimmt....ich brauch den key! ich habe immer nur gesucht wie ich die Zahl bekomme! Super, funktioniert! Vielen Dank!!
          PHP-Code:
          $hoechstezahl=max(array_keys($seiten)); 

          Kommentar


          • #6
            alternativ

            count($seiten)-1 oder for-schleife bis <count($seiten)
            [font=Verdana]
            Wer LESEN kann, ist klar im Vorteil!
            [/font]

            Kommentar


            • #7
              Zitat von eagle275 Beitrag anzeigen
              alternativ

              count($seiten)-1 oder for-schleife bis <count($seiten)
              Eben nicht, da der TO schon erwähnt hat, dass es fehlende Seiten gibt, die er auf diese Weise erst suchen will.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Ja, das mit dem count geht nicht. Das war auch mein erster Gedanke. Aber dann bekomme ich praktisch ja nur die Anzahl der keys, und nicht die werte.

                Kommentar


                • #9
                  1) Arraykeys bei nicht assoziativen Arrays auslassen ist Unsinn in meinen Augen ...vor allem auf der obersten Ebene , bei mehrdimensionalen Arrays

                  2) könnte man ja abfangen ...

                  ich hätte eher die Performance von count angezweifelt , falls php dafür das Array einmal durch iteriert ^^

                  außerdem ist ja bei nichtassoziativen Arrays wegen 1) automatisch der höchste Key = Anzahl -1 ....
                  [font=Verdana]
                  Wer LESEN kann, ist klar im Vorteil!
                  [/font]

                  Kommentar


                  • #10
                    Naja, aber sagen wir mal ich habe die Seiten 1,2 und 10!
                    Mit Count bekomme ich ja die Zahl 3 zurück!
                    Eigentlich will ich aber die Zahl 10 haben.

                    Kommentar


                    • #11
                      Da die Daten aus der DB kommen, sollte man überlegen ob man das Problem schon im SQL Statement erschlagen kann. Solche Nachbearbeitungen in PHP haben immer den Geruch der "miserablen DB Struktur".
                      Wir werden alle sterben

                      Kommentar


                      • #12
                        Zitat von eagle275 Beitrag anzeigen
                        1) Arraykeys bei nicht assoziativen Arrays auslassen ist Unsinn in meinen Augen ...vor allem auf der obersten Ebene , bei mehrdimensionalen Arrays
                        Es ist bereits ein assoziatives Array – eben gerade weil die Schlüssel nicht fortlaufend sind. Der Ansatz ist doch für das gegebene Problem anscheinend sinnvoll gewählt. Warum also daran herummosern?
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar

                        Lädt...
                        X