2013-03-16 80 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