Autor Zpráva
frost
Profil
Zdravím vás, mám toto pole a hodnotu a nevím si rady.
V první řadě doufám, že nevadí že mám pole obráceně zapsané.
Dejme tomu že mám hodnotu 19000 a já potřebuji z pole získat hodnotu 3, protože je nejbližší nižší.
Nevíte někdo jak na to?

$kb= arrya (
"2" <= "2000",
"3" <= "8000",
"4" <= "20000",
"5" <= "39000",
);
?>
Joker
Profil
Tak pokud by to pole bylo vždy takhle seřazené podle velikosti, stačilo by vrátit o jeden nižší prvek ;-)
Jinak by šla použít třeba modifikovaná funkce pro hledání maxima:
function maximum_pod($pole, $limit=false){
/* vrátí index nejvyšší hodnoty z $pole, která je nižší než $limit
 * Pokud žádná taková není, vrátí false
 * Pokud je v poli více takových hodnot, vrátí se index té první
 * Není-li zadáno $limit, vrátí index nejvyšší hodnoty celého pole
 */
  $max = false; $vysledek = false;
  foreach($pole as $i=>$h){
    if(($limit === false) || ($h < $limit)){
      if(($max === false) || ($h > $max)){
        $vysledek = $i;
        $max = $h;
      }
    }
  }
  return($vysledek);
}


(edit: fórum se mnou trochu laškovalo, teď už je to snad správně)
frost
Profil
Dostal jsem se k tomu až teď a napsal jsi to perfektně.
Děkuji ti mnohokrát.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0