PHP. Функция, возвращающая ссылку в массиве

arctica112

Новичок
Доброго времени суток, уважаемые программисты.

Имеется задача и код, который, к сожалению, работает неправильно.

Формулировка задачи:
"С использованием функций написать программу, которая возвращает ссылку в массиве из символов на последний символ, отличный от буквы латинского алфавита".

То, что накодилось с горем пополам:
PHP:
    $array_symb = range ('a','z');                //создали массив из букв латинского алфавита
    $array_num = range (0,9);                    //создали массив из чисел
    $arr = array_merge($array_symb,$array_num);  //объединили массивы
    shuffle($arr);                                //и перемешали
    //print_r($arr);
    function &last_one () {                      //создали функцию, возвращающую ссылку на последний отличный от буквы элемент массива
        global $arr;
        global $array_symb;
        global $array_num;
        $len_mass = count ($arr);
        $i = $len_mass;
            while ($i>0)    {                    //организовываем цикл, проверяющий наличие элементов в массиве букв или чисел
                $found_last = $arr[$len_mass-1];
                if (in_array($found_last,$array_symb)) {
                    $found_last=$found_last - 1;
                    $i--;
                                                        }
                else if (in_array($found_last,$array_num)) {
                    break;                                  }
                            }
    return $found_last;
                            }
    $last_elem = &last_one();
    echo $last_elem;
Проблема заключается в том, что результат выдается через раз (либо правильный ответ (цифра), либо почему-то "-1").
Очень прошу объяснить, что не так с кодом и как правильно всё это реализовать.
Заранее извиняюсь за глупые вопросы и абсолютное неумение кодить.
 

AnrDaemon

Продвинутый новичок
0. Не использовать глобальные переменные. Это глупо и никогда неоправдано.
В вашем случае вам нужно передать в функцию массив исходных данных и массив разрешённых символов.
1. http://php.net/foreach
2. Слишком много "-1" в коде. Если бы это был любой другой язык, ваш код бы просто напросто не работал. Вообще.

Вы не пробовали изложить ваш аггоритм для начала на русском языке?
 

Absinthe

жожо
Как в WordPress передать без global переменную в шаблон, подключаемый из другого шаблона?
Соблюдать стайлгайды WP.
Вот зачем тебе шаблон? Там принято херачить прямо в основном файле в огромной простыне кода через кучу вложенных if.
Так и делай.
А то надумал тут умничать и от говнокода избавляться.
 
Сверху