Portál AbcLinuxu, 7. prosince 2025 22:50
$jmeno = "Petr";
switch ($jmeno){
case "Honza" :
echo("Honza");
break;
case "Jiří" :
echo("Jiří");
break;
default :
echo("Petr");
}
Pokud je toho více tak použít if a cyklus for.
for($c=1; $c<100; $c++){
if($seznam[$c] == $slovo) { echo ("našel jsem slovo ". $slovo); break; }
}
Out of index! :)$c=1; $c<100; $c++
count($arr) (a navíc se snad čísluje od 0, ne?)
$a = array(1 => 'pepa','franta'); $c = count($a); for($i=1;$i<=$c;$i++) echo $a[$i] . "\n";…ne že bych to obvykle dělal… :)
foreach
foreach(), ani zdaleka neznamená, že se musí za každou cenu použít.
foreach je obvykle nepatrně rychlejší prochází-li nějaké pole polí apod.
for je obvykle nepatrně rychlejší procházíme-li pole například čísel.for,
a zas pokud máme pole asociativní (nebo potřebujeme znát klíč a současně hodnotu), je obvykle vhodnější použít foreach (samozřejmně nemusíme, vytáhneme si klíče a procházíme ty).
for je například pro mně mnohem jednoduší, bo je ve většině jazyků stejný.for a dobré používat foreach, když každé je trochu vhodnější na něco jiného a obě jsou to platné konstrukce jazyka?
for“.for je daleko vhodnější.
Jenom s tim cislovanim nemas tak uplne pravdu - samotny for cyklus funguje lip jen kdyz muzes zacit od nuly. Pokud cislujes neco uprostred seznamu, tak tvoje pozice v datasetu neni stejna jako index, takze stejne potrebujes zvlastni cislovaci promenou. Cislovani vystupu z db byl jedinej pripad kdyz jsem si na for vzpomel - ale jen do chvile nez jsem zacal resit strankovani. (Ano, muzes scitat pozici a index, ale to je v php drazsi operace nez drzet dalsi pomennou.)
Napadají mne dvě možnosti:
in_array().Nejste-li schopen realizovat ani jednu z těchto variant (samozřejmě vám to nemusí nutně trvat celých pět minut) a nejste-li ani ochoten udělat něco proto, abyste byl, doporučuji zamyslet se, je-li programování pro vás vhodnou činností. Jinak tady totiž podobně "zapeklitých" problémů budete řešit nejméně deset denně.
$slova = array("slovo", "jiné slovo", "praha");
var_dump(in_array("slovo", $slova));
var_dump(in_array("false", $slova));
$name2num = array("pondeli" => 1, "utery" => 2, "streda" => 3, "ctvrtek" => 4, "patek" => 5, "sobota" => 6, "nedele" => 7);
a preklad je jednoduse vyhledani klice
$nazevdne = "pondeli"; $cislodne = $name2num[$nazevdne];Pokud potrebujes pro kazde slovo delat neco jineho, musis prochazet pole rucne cyklem (pres foreach je to jednodussi nez for a cisleny index) nebo udelat switch, jak bylo receno vyse.
$name2num = array(
"pondeli" => "funkce1",
"utery" => "funkce1",
"streda" => "funkce1",
"ctvrtek" => "funkce2",
"patek" => "funkce2",
"sobota" => "funkce3",
"nedele" => "funkce3"
);
$nazevdne = "pondeli";
function funkce1($param){ var_dump(__FUNCTION__); var_dump($param); }
function funkce2($param){ var_dump(__FUNCTION__); var_dump($param); }
function funkce3($param){ var_dump(__FUNCTION__); var_dump($param); }
if (isset($name2num[$nazevdne]) && is_callable($name2num[$nazevdne]))
call_user_func($name2num[$nazevdne],$nazevdne);
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.