Autor Zpráva
Ondra28
Profil *
Zdravím

mám skriptík na aritmetický průměr..


<?php
$pole = Array(5,5,10,8);
$soucet = 0;

for($i=0,$pocet = count($pole);$i<=$pocet;$i++) {
 $soucet += $pole[$i];
}

echo $soucet/$pocet;
?>



Jako normálně to funguje jen to vyhazuje Notice:

Notice: Undefined offset: 4 in D:\wamp\www\prumer.php on line 6

Jak se mám této Notice zbavit ?
tiso
Profil
Ondra28
$soucet=array_sum($pole);
Ondra28
Profil *
to je pěkný o týhle funkci sem nevěděl ale můj případ to neřeší..(:

Prostě berte v úvahu že neexistuje array_sum a furt jen nevím jak se zbavit té NOTICE
WanTo
Profil
Oprav si podmínku cyklu na $i < $pocet. Jestliže se pole v PHP indexuje od nuly, tak poslední prvek má index N-1 (kde N je počet prvků pole).
Ondra28
Profil *
Jou, dík
AM_
Profil
1) je zbytečné zavádět proměnnou $pocet, kratší a čitelnější je $i < count($pole)
2) na procházení polem je ve většině případů lepší použít konstrukci foreach
nightfish
Profil
je zbytečné zavádět proměnnou $pocet, kratší a čitelnější je $i < count($pole)
ovšem pak se bude count($pole) vyhodnocovat při každém průchodu cyklem, což nemusí být nejvhodnější
AM_
Profil
nightfish
nemyslím si, že funkce count() by byla nějak drasticky náročná, proto bych upřednostnil čitelnost. Ale stejně optimální řešení je zde foreach, který je procházení polem šitý na míru.
Joker
Profil
AM:
nemyslím si, že funkce count() by byla nějak drasticky náročná
Jak se říká, stokrát nic umořilo osla.
Určitě je lepší se vyhnout zbytečnému volání funkce uvnitř cyklu.
Ondra28
Profil *
Ok, pro příště volím foreach x)

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