Простыми словами - в цикле у тебя if () else () , а значит что на каждой итерации он обязательно зайдет либо в if () либо в else() а у тебя там в обоих случаях return, следовательно твой цикл бессмысленнен, т.к. дальше одной итерации он никогда не зайдет.
Первый код вернет индекс только, если первый элемент в массиве будет соответствовать условию. Иначе на первом элементе сработает return -1; и цикл завершится.
Ну если нужно быстро начать писать то это без сомнения YII / YII2 он кстати очень быстрый. Но сейчас придут сторонники Symfony / Symfony2 и будут меня топтать :)))