Autor Zpráva
MaxDJs
Profil *
Zdravím,

existuje jinej způsob jak vypočítat hodnotu výrazu 1/x*y než tenhle:

<?php
$x = array(10,40,3,33,90);
$y = array(40,98,100,46,18);

for($i=0;$i<=4;$i++) {
   for($c=0;$c<=4;$c++) {
   $vysledek = 1/($x[$i]*$y[$c]);
   echo "1/".$x[$i]."*".$y[$c]." = ";
   echo $vysledek;
   echo "<br />";
   }
}
?>

Děkuji za odpověď

Moderátor Alphard: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
xmark
Profil
1/x*y = y/x

místo for bych radši použil foreach.
MaxDJs
Profil *
xmark:
A jak můžu zároveň procházet dvě pole pomocí foreach?
Radek Cvek
Profil
<?php
$x = array(10,40,3,33,90);
$y = array(40,98,100,46,18);

foreach ($x as &$valuex)
  foreach ($y as &$valuey)
    {
    $vysledek = 1/($valuex*$valuey);
    echo "1/".$valuex."*".$valuey." = ";
    echo $vysledek; 
    echo "<br />";
    }
?>
MaxDJs
Profil *
Děkuji
AM_
Profil
Radek Cvek:
foreach ($x as &$valuex)
proč? hodnotu pole tam nikde neměníš.
Navíc tahle konstrukce může mít velice nepříjemné vedlejší efekty, po každém foreach s referencítkem & doporučuji volat unset($valuex); kde $valuex je reference z foreachu. Reference totiž zůstane živá jako odkaz na poslední prvek a pokud někde dál v programu použiješ proměnnou $valuex, přepíšeš si poslední prvek pole, a to je překrásná chyba, která se pak výborně hledá.
Alphard
Profil
Kontrola, jestli se nedělí 0, by neškodila.
Výpis lze dát (přehledně) na jeden řádek.
echo "1/$valuex*$valuey = ".(1/($valuex*$valuey))."<br />";

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: