从数据库值生成的数组输出。
Array ( [0] => Array ( [seldate] => 2019-04-28 [count] => 268 )
[1] => Array ( [seldate] => 2019-04-29 [count] => 366 )
[2] => Array ( [seldate] => 2019-04-30 [count] => 85 )
[3] => Array ( [seldate] => 2019-04-28 [count] => 93 )
[4] => Array ( [seldate] => 2019-04-29 [count] => 82 )
[5] => Array ( [seldate] => 2019-04-30 [count] => 31 )
[6] => Array ( [seldate] => 2019-04-28 [count] => 44 )
[7] => Array ( [seldate] => 2019-04-29 [count] => 44 )
[8] => Array ( [seldate] => 2019-04-30 [count] => 22 ) )
我需要在下面创建 google LineChart的数组上面的字符串输出。
"['2019-04-28', 268, 93, 44],
['2019-04-29', 366, 82, 44],
['2019-04-30', 85, 31, 22]"
请帮助创建PHP代码逻辑。
答案 0 :(得分:2)
首先准备数组,将其作为键作为日期,将值作为值。
然后再次循环,并将这些行写入包含内插值的新数组。
最后输出内含在逗号和换行符之间的行。
foreach($rows as $r){
$dates[$r['seldate']][] = $r['count'];
}
foreach($dates as $date => $vals){
$lines[] = "['" . $date . "', " . implode(", ", $vals) . "]";
}
echo implode(",\n", $lines);
输出:
['2019-04-28', 268, 93],
['2019-04-29', 366],
['2019-04-30', 85]
答案 1 :(得分:0)
您可以使用array_walk遍历数组
$result = [];
array_walk($arr, function($item) use(&$result){
if(empty($result[$item['seldate']])){ // if empty add date and count for initialisation
$result[$item['seldate']] = [$item['seldate'], $item['count']];
}else{
$result[$item['seldate']][] = $item['count']; // just append value to same key as date as we are grouping it by date
}
});
$result = array_values($result); // to remove date keys
print_r($result);
输出
Array
(
[0] => Array
(
[0] => 2019-04-28
[1] => 268
[2] => 93
[3] => 44
)
[1] => Array
(
[0] => 2019-04-29
[1] => 366
[2] => 82
[3] => 44
)
[2] => Array
(
[0] => 2019-04-30
[1] => 85
[2] => 31
[3] => 22
)
)
注意:如果要将这些数据用于线图,请在输出上方json_encode。