[英]PHP / JS: convert PHP array to JavaScript array
我有一个PHP数组( $cloud
),在使用json_encode
,当我打印它时返回以下内容:数组现在包含正确的内容,但看起来与我需要的不同,这可能是为什么在我的JS中使用它不起作用。
当前数组如下(缩短):
Array ( [0] => Array ( [text] => item 1 [weight] => 20 ) [1] => Array ( [text] => item 2 [weight] => 19 ) [2] => Array ( [text] => item 3 [weight] => 18 ) [3] => Array ( [text] => item 4 [weight] => 17 ) [4] => Array ( [text] => item 5 [weight] => 16 ) )
有没有办法可以将其转换为JavaScript数组,看起来像下面这是我需要的函数呢?
var word_array = [
{text: "item 1", weight: 20},
{text: "item 2", weight: 19},
{text: "item 3", weight: 18},
{text: "item 4", weight: 17},
{text: "item 5", weight: 16},
];
不幸的是,我不能在这里提供更多,因为我不知道如何做到这一点。 我尝试简单地将它回显到JS变量中,但这不起作用,因为格式不是函数所期望的。
蒂姆,非常感谢任何提示。
为此你必须编写自己的函数。 这个应该工作,但不必:
$json = "[ \n";
foreach($array as $element) {
$obj = array();
foreach($element as $key => $val) {
if(is_numeric($val)) {
$obj[] = $key.": ".$val;
} else {
$obj[] = $key.": \"".$val."\"";
}
}
$json .= "{".implode(", ", $obj)."},\n";
}
$json .= "\n ];";
$.getJSON('/phpscript.php', function(data){
var word_array = data;
})
你永远不应该直接回复PHP代码到js,通过ajax获取它。 了解web2.0的概念,这样你就可以在php开发中领先一步,而你的同行仍在使用过时的MVC和其他策略。
服务器端你应该使用它来返回你的数组:
die(json_encode($array));
一旦你将阵列重新放入js,你将需要学会使用它。 首先,使用控制台日志记录它
console.log(word_array);
您应该在浏览器的控制台选项卡中看到一个带有键名/值的对象。
现在你需要使用它。
for(var i = 0; i < word_array.length; i++){
$('#example').append('<p>'+word_array[i].keyname+'</p>');
}
其中keyname
是您要访问的数组的键。
简单地使用此代码
PHP
$arr_ouput = array();
foreach($clould as $arr)
{
$arr_temp = array();
foreach($arr as $key=>$val)
{
$str2 = $key.':"'.$val.'"';
$arr_temp[] = $str2;
}
$str_temp = '{'.implode(",", $arr_temp).'}';
$arr_ouput[] = $str_temp;
}
$str = '['.implode(",", $arr_ouput).']';
JS
<script>
var word_array = <?php echo $str;?>;
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.