2014-05-20 2 views
0
function stepzero(){ 
    $alcount = $_POST["alcount"];//retrieve number of row 
    $crcount = $_POST["crcount"];//retrieve number of coloumn 

    for ($x=1; $x <=$crcount ; $x++) { //Loop for coloumn 
     for ($y=1; $y <=$alcount ; $y++) { //Loop for row 
      ${"v".$y."t".$x} = $_POST["r".$y."c".$x];//retrieve value of table 
      ${"v".$y."t".$x} = ${"v".$y."t".$x}*${"v".$y."t".$x};//square the value 
      ${"nv".$y."t".$x} = ${"nv".$y."t".$x} + ${"v".$y."t".$x}; //not working 
      echo ${"nv".$y."t".$x}; 
      echo "<br>"; 
     } 
    } 
} 

테이블에서 값을 검색하고이를 제곱 한 다음 합산하는이 함수가 있습니다. 그러나 ${"nv".$y."t".$x}${"v".$y."t".$x}과 같은 값을 반환합니다 (합계하지 않았습니다). 이 문제를 어떻게 해결할 수 있습니까?PHP 동적 변수의 반복

+0

배열은 변수 변수보다 훨씬 쉽게 작업 할 수 있습니다. –

+0

코드 $ { "nv". $ y. "t"에 있습니다. $ x} = $ { "nv". $ y. "t". $ x} + $ { "v". $ y. "t". $ x}; $ { "nv". $ y. "t". $ x} = 0 + $ { "v". $ y. "t". $ x}와 유사합니다. 이것이 바로 비슷한 가치를 돌려주는 이유입니다. –

+0

이것은 미친 짓이다. 배열을 사용하십시오. – bearfriend

답변

0

이 코드는 훨씬 간단 할 수 있습니다. 예를 들어

,이 두 라인 :

${"v".$y."t".$x} *= ${"v".$y."t".$x};//square the value 
${"nv".$y."t".$x} += ${"v".$y."t".$x}; //not working 
+0

thx. 지금은 그것을 배열로 변환. – AlexTomo

+0

그렇다면 $ { "nv". $ y. "t. $ x}는 루프 반복마다 새로운 변수라는 것을 알 수 있습니다. 그래서 $ { "v". $ y. "t". $ x}를 추가하면 $ { "v". $ y. "t". $ x}를 0으로 추가하는 것입니다. 다 합친 것입니까? – Okonomiyaki3000

+0

예, 모든 것을 요약하려고하지만 모든 반복을 저장하려고합니다. 이제 전역 배열을 만들고 루프를 사용하여 모든 $ { "v". $ y. "t". $ x}를 삽입하려고합니다. 그런 다음 foreach()를 사용하여 합계합니다. 이게 옳은 거니? – AlexTomo

0

그냥 값의 무리의 제곱의 합을 얻고 싶은 경우에,이 시도 :

${"v".$y."t".$x} = ${"v".$y."t".$x}*${"v".$y."t".$x};//square the value 
${"nv".$y."t".$x} = ${"nv".$y."t".$x} + ${"v".$y."t".$x}; //not working 

더 나은로 작성 될 수 있습니다 :

function stepzero(){ 
    $alcount = $_POST["alcount"];//retrieve number of row 
    $crcount = $_POST["crcount"];//retrieve number of coloumn 
    $sum = 0; 

    for ($x=1; $x <=$crcount ; $x++) { //Loop for coloumn 
     for ($y=1; $y <=$alcount ; $y++) { //Loop for row 
      $sum += $_POST["r".$y."c".$x] * $_POST["r".$y."c".$x]; 
     } 
    } 

    return $sum; 
} 
+0

thx man. 당신은 나의 영웅이다. – AlexTomo