Аз още не съм загубил интерес - просто нямам много свободно време, а в допълнение и решението нещо много упорито ми убягва. Но далеч не съм се отказал, понеже задачата наистина ми е интересна. Поради което, ако няма други все още борещи се, заради които отговорът да не се оповестява, то бих помолил за лична услуга, ако може, за момента отговорът да не бъде публикуван в темата, а ако някой все пак го иска, да се изпраща като лично съобщение. Е, няма да се разсърдя, ако молбата ми бъде отхвърлена де
Това решение, което даваш сега, е с интересна идея, обаче май има повече действия и синтаксисно разнообразие от всички останали предложения досега в темата. Но пък то нали се отнася към първоначалните условия, а там си пасва.
Между другото, докато си играх с тази задача, научих още нещо ново, което не го намерих описано в документацията на PHP (което не значи, че го няма, но все пак търсих усилено). Става дума за изпълнение на if условие в структурата на array_search(). Тъй като се зачудих дали има начин като needle в array_search() да се зададе не статична стойност, а диапазон от стойности, което щеше да ми позволи директно с един array_search() да намеря нужната стойност на $z в масива, и да реша въпроса, но не намерих никаква информация за това, реших да поекспериментирам директно с кода, пък току виж изскочил някакъв заек. И ето някои от комбинациите, които върнаха някакъв заек:
GeSHi (PHP):
<?php
$array[0] = 1;
$array[1] = 5;
$array[2] = 10;
$x = 7;
echo array_search($x >= $array[0], $array)."\n";
//Връща първият ключ на масива, т.е. 0 echo array_search($x >= $array[1], $array)."\n";
//Връща първият ключ на масива, т.е. 0
?>
Явно успявам да разбера дали $x е по-голямо или по-малко от указаната стойност на масива, но не се сещах защо при успех винаги се връщаше първия ключ на масива, а не ключът на указания елемент в условието. След което намерих
това сред потребителските постове с примери за използване на array_search(). Казано по нашенски за тези, които все още не разбират, в PHP числовите стойности, освен самата си стойност, имат следните определящи видове - нулева стойност, при което се връща false за стойността, и ненулева стойност, при което се връща true за стойността. Функцията array_search() може да търси за булеви стойности, така че, задавайки if-подобна проверка като needle, всъщност съм постигнал указване на true/false. Тъй като array_search() връща първата намерена стойност, то той ми е връщал винаги ключа на първата ненулева стойност при true, а тъй като нямам нулеви стойности в този архив, не ми връща нищо при false. Тъй като не намерих никаква информация за използването на if структура в array_search(), продължих с опитите и видях, че можем да имаме дори подобно задаване:
GeSHi (PHP):
при което успяват да се изпълнят както двете проверки, така успява да се зададе и различна стойност на $x (в случая 5), но тази стойност на $x започва да действа след приключването на array_search().
В крайна сметка до момента не съм стигнал до вариант на тази скрита (неописана, или ненамерена от мен) възможност за ползване на array_search(), който ще ми е полезен за изпълнението на задачата с всичките й условия, а най-вероятно няма и да стигна до такъв, но реших да покажа една интересна възможност на array_search(), пък и да се види в какво си загубих свободното време, вместо да измисля работещо решение на задачата
P.S.: Гледам, че докато си изпиша фермана, са се появили вече отговори с една скоба, но нищо. Направих всичко възможно да не успея да прегледам и запомня нищо от тях, така че си продължавам с разсъжденията самосиндикално
VladSun, поздрави за задачата!