数组中的图形表示逻辑[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组中的图形表示逻辑[关闭]相关的知识,希望对你有一定的参考价值。

从数据库值生成的数组输出。

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代码逻辑。

答案

首先准备您的数组作为关键日期,值是值。 然后再次循环它并将行写入具有内爆值的新数组。

最后在逗号和新行上输出带有内爆的行。

foreach($rows as $r){
    $dates[$r['seldate']][] = $r['count'];
}

foreach($dates as $date => $vals){
    $lines[] = "['" . $date . "', " . implode(", ", $vals) . "]";
}

echo implode(",
", $lines);

输出:

['2019-04-28', 268, 93],
['2019-04-29', 366],
['2019-04-30', 85]

https://3v4l.org/14smE

另一答案

您可以使用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
        )

)

Demo

注意:如果要将此数据用于折线图,请输出以上qazxsw poi。

以上是关于数组中的图形表示逻辑[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥此代码片段返回意外结果?

有没有办法关闭代码片段中的命名建议?

带有红宝石集合/可枚举的酷技巧和富有表现力的片段[关闭]

phhstrom 快捷键

什么样的图来表示这个业务逻辑决策树?

如何在OpenGL中的顶点之间绘制边缘? [关闭]