2013-03-16 52 views
2

我无法创建从php数组中出现的javascript数组。这是我的尝试。创建从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> 
+0

你会得到什么结果? – Malvolio 2013-03-16 13:44:59

+0

'var availableTags = [<?php echo $ value ['m_field_id_8']; ?>];'你需要打印或回显值? – adeneo 2013-03-16 13:45:39

+0

它看起来不是'var availableTags = [1,2,3]',你会得到'var availableTags = [1]'var availableTags = [2]''var availableTags = [3]' – Malvolio 2013-03-16 13:47:00

回答

2

应该​​

而且

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']; ?>"); 
+0

在javascript中,您将需要执行'availableTags.push',这仅在PHP中可用。引号需要在刹车片内。 – jcubic 2013-03-16 13:56:00

+0

@jcubic yap,noob error x)。更新。谢谢 – letiagoalves 2013-03-16 13:58:32

1

声明数组外你的循环

var availableTags = []; 

然后在您的迭代:

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

并添加asforeach

foreach($samletas as $category => value); 
+0

我也试过这种方式,但我没有工作:/但我只是更新了我的问题 – Zaz 2013-03-16 14:30:57

3

您可以使用json_encode创建JSON数组

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

+1我认为你的解决方案更好 – letiagoalves 2013-03-16 14:07:23

+0

我试过这种方式,但我没有工作:/我只是更新了我的问题。 – Zaz 2013-03-16 14:28:37

+0

@Zaz你没有assoc数组,所以你不需要使用'array_values'函数。 – jcubic 2013-03-16 18:39:53