无法创建从PHP数组中出现的Javascript数组

时间:2013-03-16 13:43:03

标签: php javascript arrays

我无法创建一个从php数组中出现的javascript数组。这就是我尝试的方式。

我的PHP数组名为$ samlet。

这是我的输出:

    Array ( [0] => Array ( [m_field_id_8] => ) [1] => Array ( [m_field_id_8] => ) [2] => Array ( [m_field_id_8] => 10102a ) [3] => Array ( [m_field_id_8] => 10180a ) [4] => Array ( [m_field_id_8] => 10210a ) [5] => Array ( [m_field_id_8] => 10212a ) [6] => Array ( [m_field_id_8] => 10242a ) [7] => Array ( [m_field_id_8] => 10248a ) [8] => Array ( [m_field_id_8] => 10258a )

我希望它转换为javascript数组。

但在我这样做之前,我尝试使用模拟javascript数组,这很有效。

<script>
var availableTags = [
"Test1",
"Test2",
"Test3",
"Test4",
"Test5",
];

现在我想用我的php数组代替。这是我试过的方式。但这不起作用。为什么这很开心?

    <?php 
    foreach($samlet as $category => $value) 
    {
    ?>
    var availableTags = [<?php echo $value['m_field_id_8']; ?>]
    <?php
    }
    ?>
</script>

3 个答案:

答案 0 :(得分:3)

您可以使用json_encode创建JSON数组

echo 'var availableTags = ' . json_encode(array_map(function($value) {
   return $value['m_field_id_8'];
}, $samlet));

答案 1 :(得分:2)

应为foreach($samletas as $category => $value)

var availableTags = [];
availableTags.push(<?php echo $value['m_field_id_8']; ?>);

如果$value['m_field_id_8'] 字符串,请输入以下内容:

availableTags.push("<?php echo $value['m_field_id_8']; ?>");

答案 2 :(得分:1)

在循环之外声明数组

var availableTags = [];

然后在你的迭代中:

availableTags.push(<?php echo $value['m_field_id_8']; ?>);

as

中添加foreach
foreach($samletas as $category => value);