Ankündigung

Einklappen
Keine Ankündigung bisher.

Array-Funktionen - array_filter() - in manchen Fällen kein Rückgabewert

Einklappen

Neue Werbung 2019

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

  • Array-Funktionen - array_filter() - in manchen Fällen kein Rückgabewert

    Hi Leute,

    ich hab hier ein recht merkwürdiges Verhalten.
    Erstmal zu meinem Vorhaben. Ich möchte ein Suchfeld auswerten. Ein Teil der Auswertung besteht darin, dass ich mir Betriffe aus dem gesamten suchstring filtere und so nurnoch einzelnen Wörter bzw Zeichenketten übrig bleiben.

    der betreffente code schaut wie folgt aus ( Ausschnitt )

    PHP-Code:
    # String aus einer vorrangegangenen Aktion
    $stmListe1 "%Hallowelt%";

        
    # Whitespaces entfernen und leere Arrayelemente löschen
        
    function cutFreeArray$var ){
            return 
    trim$var ) != '';
        }

        function 
    sqlPrepareArgList$var ){
            
    $str '%' $var '%';
            return 
    $str;
        }

        
    $namen explode' ' $_POST['suche'] ); // in POST['suche'] steht z.b. "Maria Rose" drin ect
        
    $namen array_filter$namen "cutFreeArray" );
        
    $namen array_filter$namen "sqlPrepareArgList" );

        
    $stmListe2 $namen;
        
    $curr array_merge($stmListe1,$stmListe2);
        
    var_dump$curr ); 
    Das Kuriosum ist, die erste Funktion array_filter() klapp ohne Beanstantung. Alle überschüssigen Whitespaces werden entfernt und das resultierende Array ist auch korrekt. Doch der 2. Versuch mit sqlPrepareArgList funktioniert nicht. Ich hab auch schon mit echo in der Funktion die Werte testweise ausgeben zu lassen. In der Funktion werden die Strings auch korrekt zusammengebaut nur eben nicht mehr an das Array $namen zurückgegeben sondern wieder so, wie sie zuvor aussahen.

    Evtl hab ich auch die Funktion array_merge() falsch angewendet. Über kompetente Hilfe würde ich mich freuen.
    SG

  • #2
    Du möchtest wohl array_map() und nicht array_filter().

    Kommentar


    • #3
      Danke Dir. Das war der entscheidente Hinweis. Etwas verrückt finde ich die inkonsequense Reihenfolge der Parameter. Muss wohl historisch bedingt sein. ^^

      Kommentar

      Lädt...
      X