protected function compareListsWithCallback(array $aList, array $bList, $callback)
    {
        if (count($aList) != count($bList)) {
            return false;
        }

        foreach ($aList as $index => $value) {
            if (! call_user_func($callback, $value, $bList[$index])) {
                return false;
            }
        }

        return true;
    }
protected function compareListsWithCallback(array $aList, array $bList, $callback)
    {
        if (count($aList) != count($bList)) {
            return false;
        }

        foreach ($aList as $index => $value) {
            if (! call_user_func($callback, $value, $bList[$index])) {
                return false;
            }
        }

        return true;
    }
@param array $aList
@param array $bList
@param callable $callback

@throws \InvalidArgumentException
@return bool