php-0으로 나누기

정말 고마워요! 이제 또 다른 오류가 있습니다. 경고 : 0으로 나누기 이것은 나머지 코드입니다.

while($i<$n_utenti)
{
    $query3 = $mysqli->query("SELECT * FROM valutazione WHERE email='$lista_utenti[$i]'"); 
    $indice=0;
    while($row = mysqli_fetch_array($query3)) //acquisisco le votazioni dell'utente considerato per il confronto
    {
        $album_utente_confronto[$indice]=$row['id_album'];
        $voti_utente_confronto[$indice]=$row['voto'];
        $indice++;
    }
    //trovo gli album che sono stati valutati da entrambi gli utenti
    $indice=0;
    $n_album_loggato=count($album_utente_loggato);
    $n_album_confronto=count($album_utente_confronto);
    $ind=0;
    for($indice=0;$indice<$n_album_loggato; $indice++)
    {
        $index=0;
        while($index<$n_album_confronto)
        {
            if($album_utente_loggato[$indice]==$album_utente_confronto[$index])
            {
                $album_comuni[$ind]=$album_utente_loggato[$indice];
                $ind++;
            }
            $index++;
        }
    }
    //mi trovo i voti relativi agli album comuni per l'utente loggato
    $n_album_comuni = count($album_comuni);
    $indice=0;
    $i_comuni=0;
    for($indice=0;$indice<$n_album_comuni; $indice++)
    {
        $index=0;
        $trovato=false;
        while($index<$n_album_loggato && $trovato==false)
        {
            if($album_comuni[$indice]==$album_utente_loggato[$index])
            {
                $voti_comuni_logged[$i_comuni] = $voti_utente_loggato[$index];
                $trovato = true;
                $i_comuni++;
            }
            else
            {
                $index++;
            }               
        }           
    }
    //mi trovo i voti relativi agli album comuni per l'utente confrontato
    $indice=0;
    $i_comuni=0;
    for($indice=0;$indice<$n_album_comuni; $indice++)
    {
        $index=0;
        $trovato=false;
        while($index<$n_album_confronto && $trovato==false)
        {
            if($album_comuni[$indice]==$album_utente_confronto[$index])
            {
                $voti_comuni_confronto[$i_comuni] = $voti_utente_confronto[$index];
                $trovato = true;
                $i_comuni++;
            }
            else
            {
                $index++;
            }               
        }           
    }


    $correlation[$i] = Correlation($voti_comuni_logged, $voti_comuni_confronto);


    $i++;//chiusura while
}

//Displaying the calculated Correlation:
print $correlation[0];




}


//The functions that work behind the scene to calculate the
//correlation

function Correlation($arr1, $arr2)
{        
$correlation = 0;

$k = SumProductMeanDeviation($arr1, $arr2);
$ssmd1 = SumSquareMeanDeviation($arr1);
$ssmd2 = SumSquareMeanDeviation($arr2);

$product = $ssmd1 * $ssmd2;

$res = sqrt($product);

$correlation = $k / $res;

return $correlation;
}

function SumProductMeanDeviation($arr1, $arr2)
{
$sum = 0;

$num = count($arr1);

for($i=0; $i<$num; $i++)
{
    $sum = $sum + ProductMeanDeviation($arr1, $arr2, $i);
}

return $sum;
}

function ProductMeanDeviation($arr1, $arr2, $item)
{
return (MeanDeviation($arr1, $item) * MeanDeviation($arr2, $item));
}

function SumSquareMeanDeviation($arr) 
{
$sum = 0;

$num = count($arr);

for($i=0; $i<$num; $i++)
{
    $sum = $sum + SquareMeanDeviation($arr, $i);
}

return $sum;
}

function SquareMeanDeviation($arr, $item)
{
return MeanDeviation($arr, $item) * MeanDeviation($arr, $item);
} 

function SumMeanDeviation($arr)
{
$sum = 0;

$num = count($arr);

for($i=0; $i<$num; $i++)
{
    $sum = $sum + MeanDeviation($arr, $i);
}

return $sum;
}

function MeanDeviation($arr, $item)
{
$average = Average($arr);

return $arr[$item] - $average;
}    

function Average($arr)
{
$sum = Sum($arr);
$num = count($arr);

return $sum/$num;
}

function Sum($arr)
{
return array_sum($arr);
}

오류는이 행의 함수 상관에 있습니다. $ correlation = $ k / $ res; 왜 나에게 오류가 발생합니까? 나는 0과 1 사이의 값을 가지고있다

Lajos Veres

이것을 변경해야합니다.

while($i<=$n_utenti)

이에:

while($i<$n_utenti)

$n_utenti의 레코드 수보다 1 씩 큽니다 $lista_utenti.

그렇지 않으면 사용하는 것이 더 깨끗할 것입니다.

foreach($lista_uteni as $email){

기반 루프. (그리고 이런 식으로 하나의 임시 변수를 단계적으로 제거 할 수 있습니다.)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

"0으로 나누기"PHP

분류에서Dev

0으로 R 나누기

분류에서Dev

수학이없는 곳에서 PHP 나누기 오류 0으로?

분류에서Dev

2 및 9 php로 나누기

분류에서Dev

긴 문자열을 조각으로 나누기 PHP

분류에서Dev

테이블을 그룹으로 나누기-PHP와 MYSQL

분류에서Dev

PHP str 단어 수를 같은 부분으로 나누기

분류에서Dev

0으로 나누기 파이썬

분류에서Dev

0으로 나누기 해결 방법

분류에서Dev

커널 트랩-0으로 나누기

분류에서Dev

커널 트랩-0으로 나누기

분류에서Dev

경고 0으로 나누기

분류에서Dev

0으로 정수 나누기 C ++

분류에서Dev

0으로 나누기 계산

분류에서Dev

JSTL에서 0으로 나누기

분류에서Dev

어셈블리 0으로 나누기

분류에서Dev

0으로 나누기 방지

분류에서Dev

Odoo 9 qweb float 0으로 나누기

분류에서Dev

SSRS 2012 0으로 나누기 오류

분류에서Dev

0으로 나누기 확인

분류에서Dev

HTML 코드를 PHP 섹션으로 나누기 --- 내 PHP에 오류가 있음

분류에서Dev

bigQuery에서 '0으로 나누기 : 0 / 0'오류 발생

분류에서Dev

PHP를 10으로 나누고 결과가 .0보다 크면 +1 추가

분류에서Dev

PHP와 Laravel에서 시간을 정수로 나누기

분류에서Dev

PHP에서 문자열을 단어로 나누기

분류에서Dev

문자열을 배열로 나누기 [PHP]

분류에서Dev

ZeroDivisionError 얻기 : 정수 나누기 또는 0으로 모듈로

분류에서Dev

4로 나누기 병합 나누기

분류에서Dev

0을 반환하려면 0으로 나누기 설정