Ankündigung

Einklappen
Keine Ankündigung bisher.

Funktion wird abgebrochen? Key_Count

Einklappen

Neue Werbung 2019

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

  • Funktion wird abgebrochen? Key_Count

    Hallo,

    habe ein wirklich eigenartiges Problem. Ich versuche herauszufinden ob ein bestimmter key im Array an letzter Stelle steht. Dazu hab ich mir eine Funktion gebaut die mir sagt welchen Index der key hat.

    PHP-Code:
    array('0'=>'10','function'=>'eine_function'
    Die Funktion

    PHP-Code:
    public function count_key($array$key) {
            
    $count 1;
            foreach (
    $array as $k => $val) {
                if (
    $k == $key)
                    return 
    $count;
                
    $count++;
            }
            return 
    $count;
        } 
    Der Aufruf

    PHP-Code:
    if (count($Array) == $this->count_key($Array'function')) 
    Wenn ich mit dem Debugger durch das Script laufe springt er einfach bei der
    PHP-Code:
    if ($k == $key
    heraus.

    Ich sehe keinen Fehler bei der Funktion. Kann mir vllt jemand helfen oder weiß einen besseren Lösungsansatz?


  • #2
    count($Array) entspricht dem Wert 2
    $this->count_key($Array, 'function')) liefert aber 1 zurück! Indexe beginnen bei 0!
    "My software never has bugs, it just develops random features."
    "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

    Kommentar


    • #3
      Habe übrigens $this-> und public entfernt und das ganze läuft wunderbar durch!

      Edit:
      Wenn du eine Funktion brauchst die checkt ob der letzte Eintrag ein bestimmer Key ist, dann würde ich nicht über das Array laufen. Sowas wäre evt sinnvoller:
      PHP-Code:
      function isLastKey($arr$searchKey) {
          
      $keys array_keys($arr);
          if (
      $keys[count($keys)-1] == $searchKey) {
              return 
      true;
          }
          return 
      false;
      }

      var_dump(isLastKey($Array'_function'));    //Ergebnis: bool(true) 
      "My software never has bugs, it just develops random features."
      "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

      Kommentar


      • #4
        Funktioniert bei mir auch nicht kann also eigentlich nur an $this liegen. Frage ist wieso tritt das auf?

        Kommentar


        • #5
          Bist du in einer Klasse drin? $this-> wird nur innerhalb von Klassen benutzt!
          "My software never has bugs, it just develops random features."
          "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

          Kommentar


          • #6
            Jap bin ich.

            Kommentar


            • #7
              Poste Mal die ganze Klasse, wenn sie nicht zu groß ist. Der Fehler wird wohl sicherlich an einer anderen Stelle sein, denn der Code, den du hier gepostet hast, weist keinerlei Fehler auf!
              "My software never has bugs, it just develops random features."
              "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

              Kommentar


              • #8
                Habe den Fehler zwar noch nicht gelöst aber immerhin schon mal gefunden.

                PHP-Code:
                array('test'=>'test','test2'=>array('0'=>'10','function'=>'eine_function')) 
                Das ist der eigentliche Aufbau. Dies kann variieren. Also auch so aussehen:

                PHP-Code:
                array('test2'=>array('0'=>'10','function'=>'eine_function'),'test'=>'test'
                Wieso ich mich nur auf das innere Array konzentriert habe und dachte ich könnte das Problem darüber lösen
                versteh ich im Nachhinein selber nicht. Das war wohl für ein .Net Programmierer einfach zu viel PHP in
                letzter Zeit

                Dank dir für das unterbewusste "Wachrütteln" und die schöne Funktion

                Kommentar


                • #9
                  Kein Problem...
                  Aber schön ist was anderes naja sie funktioniert und der Name ist ein wenig besser...
                  "My software never has bugs, it just develops random features."
                  "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                  Kommentar

                  Lädt...
                  X