Použití nekonečna

Školení, která pořádám

Minimální prvek v poli hodnot se dá snadno najít funkcí min, která jako svůj parametr přijímá i pole. Pokud jsou data dostupná složitěji nebo chceme kromě nalezení minima udělat i něco jiného, tak můžeme použít jednoduchý cyklus. Prvotní hodnotu minima můžeme stanovit na nekonečno, což vede k jednochému kódu:

<?php
$min = INF;
foreach ($data as $row) {
    $min = min($min, $row["value"]);
}
?>

Druhou možností je vytáhnout si zkoumané hodnoty do samostatného pole (např. funkcí ipull) a použít funkci min na něj, to ale zabere paměť navíc.

Pokud jsou data v databázi a zajímá nás jen minimum a ne data samotná, tak se dá použít agregační funkce MIN, která při existujícím indexu vrátí minimum v konstantním čase.

Jakub Vrána, Řešení problému, 12.10.2015, diskuse: 2 (nové: 0)

Diskuse

trestná smradlavice:

Zdar. A co když výpočet aplikuji na prázdné pole?

ikona Jakub Vrána OpenID:

Tak je výsledkem nekonečno, což je podle mě matematicky správně. Stejný výsledek dá i JavaScript při Math.min(/* nic */).

Vložit komentář

Používejte diakritiku. Vstup se chápe jako čistý text, ale URL budou převedeny na odkazy a PHP kód uzavřený do <?php ?> bude zvýrazněn. Pokud máte dotaz, který nesouvisí s článkem, zkuste raději diskusi o PHP, zde se odpovědi pravděpodobně nedočkáte.

Jméno: URL:

avatar © 2005-2018 Jakub Vrána. Publikované texty můžete přetiskovat pouze se svolením autora. Ukázky kódu smíte používat s uvedením autora a URL tohoto webu bez dalších omezení Creative Commons. Můžeme si tykat. Skripty předpokládají nastavení: magic_quotes_gpc=Off, magic_quotes_runtime=Off, error_reporting=E_ALL & ~E_NOTICE a očekávají předchozí zavolání mysql_set_charset. Skripty by měly být funkční v PHP >= 4.3 a PHP >= 5.0.