original_string: function mapAndFilter (callable $fn, $arg = null)
    {
      $this->setIterator (new CallbackFilterIterator (new MapIterator ($this->getIterator (), $fn, $arg), function ($v) {
        return isset ($v);
      }));
      return $this;
    }
code: function mapAndFilter (callable $fn, $arg = null)
    {
      $this->setIterator (new CallbackFilterIterator (new MapIterator ($this->getIterator (), $fn, $arg), function ($v) {
        return isset ($v);
      }));
      return $this;
    }
code_tokens: function mapAndFilter ( callable $ fn , $ arg = null ) { $ this -> setIterator ( new CallbackFilterIterator ( new MapIterator ( $ this -> getIterator ( ) , $ fn , $ arg ) , function ( $ v ) { return isset ( $ v ) ; } ) ) ; return $ this ; }
docstring: Transforms each input data item, optionally filtering it out.
  
  @param callable $fn  A callback that receives a value and key and returns a new value or `null` to discard it.<br>
  It can also receive the key by reference and change it.
  <p>Ex:<code>  ->mapAndFilter (function ($v,&$k) { $k=$k*10; return $v>5? $v*100:null;})</code>
  @param mixed    $arg An optional extra argument to be passed to the callback on every iteration.
  <p>The callback can change the argument if it declares the parameter as a reference.
  @return $this
docstring_tokens: Transforms each input data item optionally filtering it out .