public static function nextByKey($array, $key, $getValue = false, $strict = false)
	{
		if (! is_array($array) and ! $array instanceof \ArrayAccess)
		{
			throw new \InvalidArgumentException('First parameter must be an array or ArrayAccess object.');
		}

		// get the keys of the array
		$keys = array_keys($array);

		// and do a lookup of the key passed
		if (($index = array_search($key, $keys, $strict)) === false)
		{
			// key does not exist
			return false;
		}

		// check if we have a previous key
		elseif (! isset($keys[$index + 1]))
		{
			// there is none
			return null;
		}

		// return the value or the key of the array entry the previous key points to
		return $getValue ? $array[$keys[$index + 1]] : $keys[$index + 1];
	}