将php数组值添加到javascript数组中

时间:2013-11-07 13:14:10

标签: javascript php arrays

我有一个php数组,我想将它的值添加到javascript数组中。例如,我这样做。

$k_data = json_encode($k)

因此

  

k_data = [2,3,4,8,9]

现在在javascript中,我正在执行以下操作

var s4 = [[]];
for(var i = 0; i<5; i++)
{ 
   s4.push([i,$k_data[i]]);
}
plot5.series[0].data = s4;

其中plot5是jqplot图。但这不起作用,我得到空白图,而下面的东西正在工作

for(var i = 0; i<5; i++)
{ 
   s4.push([i,Math.sin(i)]);
}

我在哪里弄错了?

3 个答案:

答案 0 :(得分:1)

你可以做一个for循环并回显Javascript命令来填充Javascript数组

<script>
var s4 = [[]];

<?php

$k_data = json_encode($k)
$i = 0;

foreach($k_data as $v) { 
   echo 's4.push([' , $i , ',Math.sin(' , $v , ')]);';

   ++$i;
}

?>

plot5.series[0].data = s4;
</script>

答案 1 :(得分:1)

如果你只想处理php数组,你可以这样做 -

首先, implode 数组,以逗号分隔的字符串,比如$str。就像 -

<?php
  $str = implode(",", $array);
?>

然后,使用 split 将php字符串转换为javascript数组。就像 -

<script>
  var str = <?php echo $str; ?>;
  var array = str.split(',');
</script>

OR,json_encode()可以直接帮助您 -

<script>
 <?php
  $js_array = json_encode($php_array);
  echo "var js_array = ". $js_array . ";\n";
 ?>
</script>

答案 2 :(得分:1)

看来你在javascript中引用了一个php变量。请记住,PHP是在服务器端执行的,而javascript是由浏览器执行的。因此,您需要将PHP变量传递给您的javascript。假设你的javascript和PHP在一个.php文件中,用以下内容替换上面的javascript应该有效:

<?php $k_data_js = implode("','", $k_data); ?>
var k_data = <?php echo "['" . $k_data_js . "']"; ?>;
var s4 = [[]];
for(var i = 0; i<k_data.length; i++)
{ 
   s4.push([i,k_data[i]]);
}
plot5.series[0].data = s4;

该变量在第二行传递给javascript。从那时起,您可以在脚本中引用k_data