dedlfix: Doppelte Einträge in Array per Funktion löschen

Beitrag lesen

echo $begrüßung;

Jetzt bekomme ich $unique_array mit print_r() leer angezeigt.
fehlt noch etwas?

Ah, da ist doch ein Fehler drin.

function doppelte_filter($value, $reset = false){
 static $cache = array();

if($reset){
  $cache = array();
  return;
 }

if (in_array($value->id, $cache)){
  return false;

Das if (in_array...) hat nur die eine Anweisung auszuführen: return false;
Die {}-Klammern sind alse entweder wegzulassen oder nur um dieses return zu setzen.

Die nächsten beiden Zeilen gehören sozusagen in den else-Zweig des obigen if. Es muss hier nur kein else-Zweig notiert werden, da bei erfüllter Bedingung die Funktion beendet wird, und man bei nicht erfüllter Bedingung - mit oder ohne else - auf eindeutigem Wege hier vorbeikommen.

$cache[] = $value->id;
  return true;
 }
}

echo "$verabschiedung $name";