array_filter: Wo bleibt die Null?

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

  • array_filter: Wo bleibt die Null?

    Guten Abend zusammen,

    ich habe ein Knoten im Kopf und brauche etwas Unterstützung beim nachdenken.

    Ich habe ein Array das wie folgt aussieht und ich möchte alle Einträge die ":leer:" aufweisen löschen.

    array(2) {
    [0]=> string(6) ":leer:"
    [6]=> string(1) "0"
    }

    dazu benutze ich die Funktion array_filter

    PHP-Code:
        # Filter des Platzhalters :leer:
        
    function filter2($callback)
        {
            
    $aehnliche_zeichen = array(":leer:");
            for(
    $x $x count($aehnliche_zeichen) ; $x++)
            {
                if(
    $callback == $aehnliche_zeichen[$x])
                {
                    
    $weiter "false";
                }
            }
            if(
    $weiter != "false")
            {
                return(
    $callback);
            }
        } 
    nach durchlaufen der schleife ist das Array leer:

    array(0) { }

    Schleuse ich jedoch folgendes durch die Schleife funktioniert alles wunderbar:

    array(2) {
    [0]=> string(6) ":leer:"
    [6]=> string(1) "1"
    }

    ergebnis:

    array(1) {
    [6]=> string(1) "1"
    }

    Weiss jemand von euch wo der Hund begraben liegt? Oder hat jemand eine bessere funktion?

    Ich bin für jede Antwort dankbar.

  • #2
    Gibt die callback Funktion true zurück, wird der aktuelle Wert von input in das Ergebnis-Array geschrieben.
    Du gibst statt true den Wert zurück, und 0 zählt als false.

    Außerdem, warum so kompliziert?
    PHP-Code:
    function filter($callback) {
       
    $badwords = array(":leer:"":auchleer:");
       return (! 
    in_array($callback$badwords));

    ich glaube

    Kommentar


    • #3
      Re: array_filter: Wo bleibt die Null?

      Original geschrieben von aeternitas103
      Weiss jemand von euch wo der Hund begraben liegt? Oder hat jemand eine bessere funktion?
      vermutlich musst du auch den typ vergleichen ===

      ich würd's mit array_keys() lösen, das return-array mit foreach durchlaufen und unsetten.

      Kommentar


      • #4
        Herzlichen Dank für deine kompetente Antwort, das funktioniert ja wunderprächtig.

        Jetzt ergibt das mit der null auch einen Sinn.

        Kommentar

        Lädt...
        X