我正在尝试建立一个数组来填充我的图。我使用以下代码:
$rows = $this->Website_model->getGraphDataPositives();
$_rows = array();
$i = 0;
foreach ($rows as $key => $row) {
foreach ($row as $column => $value) {
$_rows[$i]['x'] = $value;
$_rows[$i]['y'] = $value;
$i++;
}
}
这将导致以下响应:
array(48) {
[0]=>
array(2) {
["x"]=>
string(7) "3283581"
["y"]=>
string(7) "3283581"
}
[1]=>
array(2) {
["x"]=>
string(10) "2013-10-16"
["y"]=>
string(10) "2013-10-16"
}
所以还不行..应该说:
array(48) {
[0]=>
array(2) {
["x"]=>
string(7) "3283581"
["y"]=>
string(7) "2013-10-16"
}
[1]=>
array(2) {
["x"]=>
string(10) "1512116"
["y"]=>
string(10) "2013-10-17"
}
谁能告诉我为了得到正确的输出我需要调整什么?
/////////////////////////////////
这是$ rows中的内容(输出的一部分)
array(24) {
[0]=>
object(stdClass)#169 (2) {
["SUM(positive)"]=>
string(7) "3283581"
["DATE(stamp)"]=>
string(10) "2013-10-16"
}
[1]=>
object(stdClass)#160 (2) {
["SUM(positive)"]=>
string(7) "1512116"
["DATE(stamp)"]=>
string(10) "2013-10-17"
}
我认为这里的第一步是修复Codeigniter模型的输出数组。您是否创建了:
$rows = $this->Website_model->getGraphDataPositives();
如果是这样,您应该能够轻松进入该函数并更改select语句的输出。
在函数getGraphDataPositives()中找到“ SUM(positive)”和“ DATE(stamp)”的地方,将其更改为此(粗略的示例,我不知道该函数的外观):
SUM(positive) AS x
DATE(stamp) AS y
现在您可以这样运行它:
$ rows = $ this-> Website_model-> getGraphDataPositives();
$ _rows = array();
foreach ($rows as $i => $row) {
foreach ($row as $column => $value) {
$_rows[$i][$column] = $value;
}
}
还要注意,我删除了$ i = 0和$ i ++并替换了$ key wit $ i。这样容易得多。
让我知道是否有帮助。
编辑:我不小心保持第二个$ _rows [$ i] [$ column] = $ value; 在那里; 不再需要了。您只需要一个,就可以用它设置两个条目的值相同的方式。
编辑2:只是要注意上面的示例可能不是最好的选择,最好的选择是提供更多的描述别名。
SUM(positive) AS positive
DATE(stamp) AS timestamp
然后像这样设置值:
foreach ($rows as $i => $row) {
$_rows[$i]['x'] = $row->positive;
$_rows[$i]['y'] = $row->timestamp;
}
两种方法都可以使用,第一种方法比较简单。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句