Я использую Google Chart, чтобы нарисовать диаграмму для моего сайта Yii2. У меня есть массив PHP с форматом ниже:
<?php var_dump($a_tg_dat_san_con); ?>
==> Result
array(3) { [0]=> array(2) { [0]=> int(1) [1]=> int(0) } [1]=> array(2) { [0]=> int(2) [1]=> int(0) } [2]=> array(2) { [0]=> int(3) [1]=> int(0) } }
Затем, из-за создания dataTable для Google Chart, я должен преобразовать вышеуказанный массив в массив Js следующим образом:
data_row = [
[<?=json_encode($a_tg_dat_san_con[0][0])?>, <?=json_encode($a_tg_dat_san_con[0][1])?>],
[<?=json_encode($a_tg_dat_san_con[1][0])?>, <?=json_encode($a_tg_dat_san_con[1][1])?>],
[<?=json_encode($a_tg_dat_san_con[2][0])?>, <?=json_encode($a_tg_dat_san_con[2][1])?>],
];
Проблема в том, что массив php — это динамический массив.
Как я могу сделать преобразование для всех случаев массива?
Спасибо.
Передайте весь массив в переменную javasript
var data_row = <?=json_encode($a_tg_dat_san_con);?>
json_encode поддерживает многомерные массивы. Не нужно разбивать все на части и создавать свой собственный JSON.
json_encode($a_tg_dat_san_con);
Даст вам то, что вы пытаетесь собрать вручную, и вам все равно, сколько у вас строк.