Добавляем к тому, на что ответил Штеини.
Вы можете создать класс ObjectNIterator, который управляет вашим ObjectN и реализует Iterator: http://php.net/manual/en/class.iterator.php
Из методаN вызовите классMethodM, который возвращает заполненный ObjectNIterator, затем передайте эти данные методуO, который ожидает ObjectNIterator:
public function methodO(ObjectNIterator $objectNCollection)
Попробуйте:
char letter = 'c';
if (letter == 'z')
nextChar = 'a';
else if (letter == 'Z')
nextChar = 'A';
else
nextChar = (char)(((int)letter) + 1);
Таким образом, у вас не будет проблем, когда символ является последним в алфавите.
Обратите внимание, что символ будет неявно приведен к int. Вот упрощенное решение:
char incrementCharacter(char input)
{
return (input == 'z'? 'a': (char)(input + 1));
}
Как сортировать? В немецком (я думаю) это должно сортироваться после a, но в шведском это должно следовать после å, которое в свою очередь идет после z. Это не тривиальный вопрос, если вы не ограничиваетесь английским языком.
Попробуйте это:
public string GetNextAlphabetLetter(int indice) {
return ((char)('A' + indice)).ToString();
}
Как насчет:
char first = 'c';
char nextChar = (char)((int) first + 1);
Преобразуйте символ в число, увеличьте число и затем преобразуйте обратно.
Но подумайте, что произойдет с «z» или «á» (латинская строчная буква A с острым ударением).
Возможно, самый простой способ - это небольшая функция и массив из 26 символов. Затем вы можете решить, что вы хотите вернуть за «z».
нужно просто добавить 1 в символ, чтобы получить следующий символ. Он работает со значениями ASCII.