代码1:从Excel工作表中读取数据。包含12个不同的值。
值为: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
请帮帮我。我需要这些Integer值作为输出来绘制我的Graph。 提前谢谢。
答案 0 :(得分: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)它指出,你不知道$ y1是多维数组。您必须将代码更改为以下内容:
$ints = array();
foreach($y1 as $index => $cell) {
$values = array_values($cell);
$ints []= intval(round($values[0]));
}
var_dump($ints);
另请注意,您正尝试使用settype()函数将浮点数转换为int。我会使用round()
作为