Я немного искал советы и не смог выяснить, что я пытаюсь сделать.json_encode с многомерным массивом
Я построил php-функцию, которая берет CSV-файл и выгружает данные в многомерный массив (я на 99% уверен, что это правильно, по крайней мере). Мне нужно затем взять данные из массива и поместить его в линейный граф. Вот мой PHP код, который извлекает данные из CSV (и добавляет значение в конце, который является расчетом 2 других значений в массиве):
<?php
function readCSV($csvFile) {
$file_handle=fopen($csvFile,'r');
while (!feof($file_handle)) {
$line_of_text[]=fgetcsv($file_handle,1024);
}
fclose($file_handle);
return $line_of_text;
}
// Set path to CSV file
$csvFile='./example.csv';
$csv=readCSV($csvFile);
array_push($csv[0], "Percentage");
$headers = array_shift($csv);
$i=0;
foreach ($csv as $record) {
$Perc = $record[2]/$record[3];
$Perc = $Perc * 100;
$Perc = round ($Perc, 2);
array_push($csv[$i], $Perc);
$j=0;
$i++;
}
foreach ($csv as $key => $row) {
$year[$key] = $row[0];
}
array_multisort($year, SORT_ASC, $csv);
//print_r($csv);
echo json_encode($csv);
?>
Это эхо дает мне массив с следующие результаты:
[["2008","41","412","525","125.2",78.48],["2009","33","393","571","99.9",68.83],["2010","33","450","679","91.9",66.27],["2012","37","400","583","105.8",68.61],["2013","55","450","659","115.1",68.29]]
Первый ключ - год. На моем графике мне нужно составить диаграмму в зависимости от года по оси x, и мне нужно составить диаграмму 1, 5 и 6 (все в зависимости от года). Я не мог понять, как это сделать.
Формат для графа-то вроде этого:
var d1 = [[0, 3], [4, 8], [8, 5], [12, 13]];
var d1 = [[2009, 33], [2010, 33], [2012, 37], [2013, 55]];
var d2 = [[2009, 99.9], [2010, 91.9], [2012, 105.8], [2013, 115.1]];
var d3 = [[2009, 68.83], [2010, 66.27], [2012, 68.61], [2013, 68.29]];
, где первое значение в каждом наборе является ось х, 2-е значение по оси у.
любая помощь была бы очень оценена. Благодаря!
Я не совсем еще понимание того, что вы просите. Как массив 'var d1 = []' относится к данным вашего JSON? Это просто шаблон для формата, который ожидает ваш график? Как год относится к этому шаблону? Вы говорите, что вам нужно нарисовать год на X, так как это выглядит как «var d1 = [[2008, 3], [2009, 8] ...]'? –
var d1 - это шаблон для панели инструментов, которую я использую. Если на графике имеется несколько строк, это будут var d2, var d3 и т. Д. Эта часть находится в javascript. Поэтому (теоретически) для получения моего php-массива, мне нужно будет сделать что-то вроде: var d1 = Php readCSV()?>; Я ДУМАЮ? Извините, совершенно новый для всего этого. – jms2k
Можете ли вы опубликовать пример того, как должен выглядеть массив 'd1' в JavaScript при заполнении фактическими значениями вашего JSON? –