从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 ) )
它错过了一个数组(示例中的第二个)。我不知道如何以及在何处将其包含在我的代码中。
答案 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);
)