Verwenden Sie externe variable in array_filter

Ich habe ein array, welches ich filtern möchten, indem Sie eine externe variable.
Die situation ist wie folgt:

$id = '1';
var_dump($id);
$foo = array_filter($bar, function($obj){
    if (isset($obj->foo)) {
        var_dump($id);
        if ($obj->foo == $id) return true;
    }
    return false;
});

Den ersten var_dump gibt die ID (die ist dynamisch gesetzt, natürlich), aber der zweite var_dump NULL zurück.

Kann mir jemand sagen warum, und wie es zu lösen?

  • was ist $bar-und was ist der Wert von $bar
  • $bar normalerweise ist ein array
  • Wir können sagen, es ist auf jeden Fall ein array, weil es nicht werfen einen PHP-Fehler. Es kann nicht immer auf jeden Fall ein array, je nach code, aber es ist auf jeden Fall ein array, in das use-case, wo er bekommt den beschriebenen Fehler im OP
  • Sorry, es ist ja ein array mit den ID ' s.
Schreibe einen Kommentar