我的symfony控制器中有这个代码:
$em=$this->getDoctrine()->getManager();
$queryIndex = $em->createQuery( 'SELECT g.index
FROM MySpaceMyBundle:Graphique g');
$result = $queryIndex->getArrayResult();
$arrayResult = array_map('current', $result);
var_dump($arrayResult);
return $this->render('MySpaceMyBundle:MyFolder:myTemplate.html.twig');
使用我的var_dump,我得到了这个结果:
array (size=10)
0 => string '1700.000' (length=8)
1 => string '1200.000' (length=8)
2 => string '1200.000' (length=8)
3 => string '1304.000' (length=8)
4 => string '1800.000' (length=8)
5 => string '2012.000' (length=8)
6 => string '2048.000' (length=8)
7 => string '1048.000' (length=8)
8 => string '3000.000' (length=8)
9 => string '5421.000' (length=8)
但对于obHighchartBundle(使用highchart.js),我想要的结果是:
[1700,1200,1200,1304,1800,2012,2048,1048,3000,5421]
我该怎么办?
请注意,我需要传递一个数值数组(值是我数据库中的十进制类型),而不是带字符串的数组。
答案 0 :(得分:1)
您可以使用像array_walk函数这样的小提示将值转换为float,以防止出现高级问题。请参阅此功能的文档: http://php.net/manual/fr/function.array-walk.php
这里是一个微小功能的例子:
<?php
function forceFloat (&$aItems) {
$aItems = (float) $aItems;
}
$arrayResult = array("1.00","4.55","39494");
var_dump($arrayResult);
array_walk($arrayResult, 'forceFloat');
var_dump($arrayResult);
?>
输出:
array(3) {
[0]=>
string(4) "1.00"
[1]=>
string(4) "4.55"
[2]=>
string(5) "39494"
}
array(3) {
[0]=>
float(1)
[1]=>
float(4.55)
[2]=>
float(39494)
}
最诚挚的问候,
TGA
答案 1 :(得分:1)
喜欢这个吗?
$result = [];
foreach ($arrayResult as $value) {
$result[] = (int) $value
}
var_dump($result);