简体   繁体   English

将PHP数组转换为JavaScript数组

[英]Convert PHP array to JavaScript array

I want to convert a multi-dimensional PHP array to JavaScript and found this script in a post here; 我想将多维PHP数组转换为JavaScript,并在此处的帖子中找到此脚本。

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

But the JS array remains empty. 但是JS数组仍然为空。 Is it because I have a multi-dimensional array? 是因为我有一个多维数组吗?

Based on the comment you gave to one of the answers, are you sure $js_array is empty or are you just not decoding it? 根据您对其中一个答案的评论,您确定$js_array为空还是只是不解码它? If you look at the generated JavaScript, do you see var javascript_array = ; 如果查看生成的JavaScript,是否看到var javascript_array = ; or something else? 或者是其他东西? Alternatively you could add alert( javascript_array ); 或者,您可以添加alert( javascript_array ); to check. 去检查。

EDIT: Since the variable is ok, you can now access the elements with javascript_array[0].id , javascript_array[0].question etc. 编辑:由于变量正常,您现在可以使用javascript_array[0].idjavascript_array[0].question等访问元素。

You can also try something more manual like this: 您也可以尝试以下更手动的方法:

<?php
// $phpArray= ...
?>
<script type="text/javascript">

  var jsArray = {};
  <?php foreach($phpArray as $key => $val){ ?>
      jsArray.<?php echo $key; ?> = "<?php echo $val; ?>";
  <?php } ?>
  console.log(jsArray);
</script>

If $php_array isn't empty, try to... 如果$php_array不为空,请尝试...

var javascript_array = <?php echo $js_array; ?>;

...instead of: ...代替:

echo "var javascript_array = ". $js_array . ";\n";

Hope it helps! 希望能帮助到你! :) :)

您可能必须评估该json才能使其不仅仅是JavaScript代码中的字符串。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM