2011-11-18 62 views
0

我創建下面的循環迴路幫助在PHP

$x=1; 
while($x<=$excel->sheets[0]['numRows']) 
{ 
    $y=1; 
    while($y<=$excel->sheets[0]['numCols']) 
    { 
    isset($excel->sheets[0]['cells'][$x][$y])? $excel->sheets[0]['cells'] [$x][$y] : ''; 
    $y++; 

    $a1 = $excel->sheets[0]['cells'][$x][3]; 
    $a2 = $excel->sheets[0]['cells'][$x][4]; 
    $a3 = $excel->sheets[0]['cells'][$x][5]; 
    //some code to store above variables a1, a2, a3 and give the output 
    } 
    $x++; 
} 

的代碼的說明:

上述代碼讀取excel工作表,並且存儲的值和工作原理是這樣,例如,電池以行5和C列將使用符號$ obj-> sheets [0] ['cells'] [5] [3]來訪問。在excel中,每一行對應一條記錄和每列相關的元數據。

現在我試圖做的是將相應記錄的所有元數據上傳爲一個迭代,但上面的代碼將每行和每列視爲一條記錄,而不是將整行視爲一條記錄。

我在上面的代碼中做了什麼錯誤?

+0

你不需要'while($ y <...)'loop – Peter

+0

什麼是變量$ cell?這不是在任何地方使用? – Bytemain

回答

0
$x=1; 
while($x<=$excel->sheets[0]['numRows']) 
{ 
    $y=1; 
    while($y<=$excel->sheets[0]['numCols']) 
    { 
    $cell = isset($excel->sheets[0]['cells'][$x][$y]) ? $excel->sheets[0]['cells'] [$x][$y] : ''; 
    //some code to store $cell variable and give the output 
    $y++; 
    } 
    $x++; 
} 

或...

$x=1; 
while($x<=$excel->sheets[0]['numRows']) 
{ 
    $a1 = $excel->sheets[0]['cells'][$x][3] ; 
    $a2 = $excel->sheets[0]['cells'][$x][4]; 
    $a3 = $excel->sheets[0]['cells'][$x][5]; 
    //some code to store above variables a1, a2 , a3 and give the output 
} 
0

你抓列3,4,5 numCols倍。也許

$a1 = $excel->sheets[0]['cells'][$x][3] ; 
$a2 = $excel->sheets[0]['cells'][$x][4]; 
$a3 = $excel->sheets[0]['cells'][$x][5]; 

應該在外層循環中。