2013-03-05 31 views
0

CODE 1:從Excel工作表中讀取數據。包含12個不同的值。的setType()在PHP用於陣列正在產生不同的輸出

值是:48,600,5.3,5,1500,6000,85,30,70,30,70,14。

$BATTCONFIG=$objPHPExcel->getActiveSheet()->rangetoArray('C9:C20',null,true,true,true); 

代碼2:嘗試使用FOR循環將數組$ BATTCONFIG中的所有VALUES轉換爲INTEGER。

$y1 = (array_values($BATTCONFIG)); 
var_dump(y1); 
for($i=0 ; $i<=11 ; $i++) 
{ 
    settype($y1[$i], "integer"); 
} 
var_dump($y1); 

但我沒有得到desiered輸出,我得到的所有值爲1。

我的輸出:

的setType()之前:

array (size=12) 
0 => 
    array (size=1) 
    'C' => float 48 
1 => 
array (size=1) 
    'C' => int 600 
2 => 
array (size=1) 
    'C' => float 0.3 
3 => 
array (size=1) 
    'C' => int 5 
4 => 
array (size=1) 
    'C' => float 1500 
5 => 
array (size=1) 
    'C' => int 6000 
6 => 
array (size=1) 
    'C' => int 85 
7 => 
array (size=1) 
    'C' => int 30 
8 => 
array (size=1) 
    'C' => int 70 
9 => 
array (size=1) 
    'C' => int 30 
10 => 
    array (size=1) 
    'C' => int 70 
11 => 
array (size=1) 
    'C' => float 14 

的setType()之後:

array (size=12) 
0 => int 1 
1 => int 1 
2 => int 1 
3 => int 1 
4 => int 1 
5 => int 1 
6 => int 1 
7 => int 1 
8 => int 1 
9 => int 1 
10 => int 1 
11 => int 1 

請幫助我。我需要這些整數值作爲輸出來繪製我的圖。 預先感謝您。

+0

粘貼'var_dump($ y1)'或聲明'$ BATTCONFIG'的結構 – vedarthk 2013-03-05 12:20:35

+0

$ BATTCONFIG是1d還是2d數組? – 2013-03-05 12:25:27

+0

$ BATTCONFIG是一維數組。 – 2013-03-05 12:29:05

回答

1

其值填充$ Y1時,必須有另一個錯誤。想象一下這個簡單例子如預期其工作原理:是什麼讓你

$arr = array('1','2','3','4','5'); 
for ($i = 0; $i < 5; $i++) { 
    settype($arr[$i], "integer"); 
} 

var_dump($arr); 

array(5) { 
    [0] => 
    int(1) 
    [1] => 
    int(2) 
    [2] => 
    int(3) 
    [3] => 
    int(4) 
    [4] => 
    int(5) 
} 

問題(現在不得不轉換前$ Y1)指出了,你AREN的編輯後不知道$ y1是多維數組。你必須要改變的代碼是這樣的:

$ints = array(); 
foreach($y1 as $index => $cell) { 
    $values = array_values($cell); 
    $ints []= intval(round($values[0])); 
} 

var_dump($ints); 

還要注意,你正試圖轉換彩車使用的setType()函數來詮釋。我會使用round()

+0

是的,這工作,但我得到我的數據從Excel工作表和文我var_dump(y1)在循環函數之前,我得到的確切值,但在循環後,我得到它作爲全1。不知道爲什麼ALL 1。我是PHP新手請幫助我。謝謝。 – 2013-03-05 12:26:59

+0

請加上'的var_dump($ Y1)的輸出;環路你的問題之前,'。否則,問題不能得到回答。 – hek2mgl 2013-03-05 12:31:35

+0

如果我不使用從Excel這個閱讀並直接宣佈價值觀,我得到了正確的答案。不知道我的數組閱讀有什麼問題嗎? – 2013-03-05 12:35:05