Changed filter to use native loop instead of array_filter when callback is given.  Filtering callback may now include argument for key