У меня есть код гистограммы в javascript, который состоит из таких полей, как topic1, topic2 и т. д., Как показано ниже:
<script type = "text/javascript"
src = "https://www.gstatic.com/charts/loader.js"></script>
<script type = "text/javascript">
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(drawChart);
// Draw the chart and set the chart values
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Weak Area'],
['Topic 1', 3],
['Topic 2', 5],
['Topic 3', 4],
['Topic 4', 1],
['Topic 5', 8]
]);
var chart = new
google.visualization.BarChart(document.getElementById('Topic'));
chart.draw(data, options);
}
</script>
и у меня есть переменная массива php на той же странице со значением, как:
foreach($_SESSION['elements'] as $value) {
print $value;
$type[]= $value;
}
который имеет значение как:
Array ( [19] => create [20] => code )
теперь я хочу, чтобы код был чем-то, чтобы заменить topic1, topic2 и так далее элементами массива, такими как:
['Task', 'Weak Area'],
['create', 3],
['code', 5],
]);
как и выше, в массиве всего два элемента ... может кто-нибудь предложить или помочь мне.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Если «задача» и «слабое место» постоянны, вы можете попробовать что-то вроде:
foreach($_SESSION['elements'] as $value) {
$type[]= $value;
}
$type[] = 'task';
$type[] = 'weak area';
$chartData = json_encode($type);
Затем в вашем скрипте:
<script type = "text/javascript">
var chartData = [<?=$charData;?>];
function drawChart() {
var data = google.visualization.arrayToDataTable(chartData);
он говорит, что в таблице нет столбцов