php数组加载到javascript中

Tim*_*ütz 5 javascript php arrays load

所以我是一个完整的php/javascript noob.

我正在尝试将完整的php数组加载到javascript数组中.我为Javascript写了这个:

    var names = new Array();
for(var i = 0; i < 48; i++) {
    names[i] = "<?php echo giveJS() ?>";
}
Run Code Online (Sandbox Code Playgroud)

这对于PHP

static $counter = 0;

function giveJS() {
    global $names;
    global $counter;
    $counter++;
    return $names[$counter]; 
}
Run Code Online (Sandbox Code Playgroud)

我已经检查过php数组是否正确填充了数据.当我在javascript中写一个输出行时,比如

document.write(names[10]);
Run Code Online (Sandbox Code Playgroud)

它只给了我php数组中的第一个条目,所以似乎每次for循环重复它从头开始初始化php文件,所以将计数器设置为0.我怎么能解决这个问题?

Thx,Linkee

Car*_*arl 8

在PHP中

//Bla being the php array you want to give to javascript. Create it however you like
$bla = array();
$bla[] = 'cat';
$bla[] = 'dog';
$bla[] = 'bat';
echo '<script>var myarray = '.json_encode($bla) .';</script>';
Run Code Online (Sandbox Code Playgroud)

然后上面的代码将输出一个脚本标签,其中包含一个名为myarray的变量,然后其内容将是指定上述数组的JSON(json_encode将数组格式化为javascript内部语法 - 数组可能看起来像['cat','dog ','蝙蝠])

然后,您可以从JavaScript数组中获取值:

<script>
 console.log(myarray[2]);
</script>
Run Code Online (Sandbox Code Playgroud)