php为js数组赋值的二种方法(json_encode函数)

发布时间:2019-09-22编辑:脚本学堂
有关php中为js数组赋值的二种方法,在php编程中为js数组赋值,可以使用json_encode()和json_decode()来实现。

一、php为js数组赋值的方法

php提供了编/解码json函数:json_encode()和json_decode(),用于传递数组或对象给javascript

因为接口方的要求,用js中处理数据,所以需要php程序从数据库取出数值后赋值给js数组。

php数组的数据编码和js 数组的编码格式不一样,不能直接输出。

解决方法:
php函数库提供了编/解码json的函数:
json_encode()和json_decode(),可以传递数组或对象给javascript。

注意:php 5.2以上才绑定了json扩展。

例子:
 

复制代码 代码示例:
$arr = array('1',array('2','3'),array('new','old'));
$new_arr = json_encode($arr);//new_arr的输出结果是;["1",["2","3"],["new","old"]] 
echo "var data =". $new_arr;

在页面中引用以上php文件后,在js中在直接可以对data进行操作。

二、巧用json_encode()为js数组赋值   

把PHP处理后的结果付给js来处理。

在给js赋值时,单个变量的赋值比较容易实现,只要通过模版标签直接把PHP变量输出即可。

例如:
 

$this->title='I love thinkphp';

js代码:
 

<script>
 var title="{$title}";
</script>

这样,PHP变量的$title值就可以在js中进行处理~

但是,当将PHP处理后的数组要赋值给js的一个数组时,就会碰到很多问题。
如果像单个变量那样直接赋值,js无法读取数组中各元素。

可以采用json_encode()函数来处理PHP数组,将PHP处理后的数组,以json数据格式付给js,同样,js得到也是json数据格式的数组。

例如:
php:
 

$this->myarr=array('Think','PHP','China');

js:
 

<script>
 var myarray={:json_encode($myarr)};  //注意,这里不要用双引号或单引号;
</script>

此时js中myarray=['Think','PHP','China'];
这样一个json格式的数组,这在js中处理进行处理是相当容易的。