如何创建和填充三维数组

时间:2018-02-08 16:23:10

标签: php arrays multidimensional-array

从csv文件我想创建并填充必须与此示例匹配的三维数组:

$line_chart_data=array(
                array(
                    array("Jan",48.25),
                    array("Feb",238.75),
                    array("Mar",95.50)),
                );

目标是为php图表库创建一个可读的数组。

这是我的代码:

function createChartData()
{
    $timestamp = 0;
    $keys = array();
    if (($handle = fopen("file.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $num = count($data);
            $timestamp++;
            $keys[] = array($timestamp, $data[1]);
            }
        }
        fclose($handle);
    return $keys;
}

结果是:

Array ( [0] => Array ( [0] => 1 [1] => 3243259 ) [1] => Array ( [0] => 2 [1] => 3243200 ) [2] => Array ( [0] => 3 [1] => 3243100 ) )  

它错过了一个数组(示例中的第二个)。我不知道如何以及在何处将其包含在我的代码中。

1 个答案:

答案 0 :(得分:1)

如果您的功能已经返回

array(
    array("Jan",48.25),
    array("Feb",238.75),
    array("Mar",95.50)
)

并且你只需要在输出周围再添一个数组来获得图表所需的三维结构,有几种不同的方法可以做到。

一种是在向结果追加行时添加额外的数组图层,而不是

$keys[] = array($timestamp, $data[1]);

你可以使用

$keys[][0] = array($timestamp, $data[1]);
//      ^ second level

另一种方法是在返回之前将输出包装在数组中,因此return [$keys];而不是return $keys;。 (在旧版本的PHP中,它将是return array($keys);