这是代码:
<?php
$array = array('RANAJI', 'YAARA MAULA', 'AARAMBH', 'AISI SAZAA', 'SHEHER', 'BEEDO', 'DUNIYA', 'RAAT KE MUSAFIR');
foreach ($array as $item) echo $item.'<br>';
?>
<script>
var i;
var name = <?php echo json_encode($array); ?>;
for(i=0;i<name.length;i++){
document.write(name[i]+'<br>');
}
</script>
这是输出:
RANAJI
YAARA MAULA
AARAMBH
AISI SAZAA
SHEHER
BEEDO
DUNIYA
RAAT KE MUSAFIR
[R
A
<磷>氮A
Ĵ
我
,
ý
A
A
[R
A
中号
A
û
→
A
,
A
A
A
中号
乙
ħ
,
A
我
取值
我
取值
A
ž
A
A
,
取值
ħ
电子
ħ
电子
[R
,
乙
电子
电子
d
0
,
d
û
<磷>氮我
ý
A
,
[R
A
A
Ť
ķ
电子
中号
û
取值
A
˚F
我
[R
那么,如何以与存储在PHP数组中相同的方式存储值?
答案 0 :(得分:3)
问题是您是在全局范围内执行此操作。已有name
property on the global window object。除其他原因外,人们会告诉你不要在全局范围内声明变量。
正在发生的事情是你的数组被串联成一个字符串值,以便将它保存到window.name
属性中,从而为什么要name[i]
检索一个字母而不是单词。
将您的变量命名为其他内容
var i;
var nameArr = <?php echo json_encode($array); ?>;
for(i=0;i<nameArr.length;i++){
document.body.insertAdjacentHTML('beforeend',nameArr[i]+'<br>');
}
另外尽量不要使用document.write
还有其他可用于插入html / text的DOM方法/属性
答案 1 :(得分:1)
变量'name'是问题所在,将其更改为'foo'并且它应该可以正常工作
<?php
$array = array('RANAJI', 'YAARA MAULA', 'AARAMBH', 'AISI SAZAA', 'SHEHER', 'BEEDO', 'DUNIYA', 'RAAT KE MUSAFIR');
foreach ($array as $item) echo $item.'<br>';
?>
<script>
var i;
var foo = <?php echo json_encode($array); ?>;
for(i=0;i<foo.length;i++){
document.write(foo[i]+'<br>');
}
</script>