在前端开发中,常常会出现需要将 php 中的数组转成 javascript 对象数组的情况。当然,这并不是什么难事,只需要进行简单的操作即可实现。本文将介绍一种使用 json_encode()
函数直接将 php 数组转换成 javascript 对象数组的方法。
php 数组转换成 json 字符串
在将 php 数组转换成 javascript 对象数组之前,需要先将 php 数组转换成 json 字符串。使用 php 内置函数 json_encode()
即可将 php 数组转换成 json 字符串。以下是一个示例:
$data = array( array('name' => 'amy', 'age' => 22), array('name' => 'bob', 'age' => 25), array('name' => 'cathy', 'age' => 28) ); $json_string = json_encode($data); echo $json_string;
以上代码将 $data 数组转换成一个 json 字符串,并使用 echo
输出。输出结果为:
[{"name":"amy","age":22},{"name":"bob","age":25},{"name":"cathy","age":28}]
将 json 字符串转换成 javascript 对象数组
在得到 json 字符串后,只需要使用 json.parse()
函数将其转换成 javascript 对象即可。以下是一个示例:
var data = json.parse(''); console.log(data);
以上代码将 $json_string
的值输出到 json.parse()
函数中,将其转换成 javascript 对象,并使用 console.log()
输出。输出结果为:
[ { name: "amy", age: 22 }, { name: "bob", age: 25 }, { name: "cathy", age: 28 } ]
以上方法可以简单地将 php 数组转换成 javascript 对象数组。如果你需要将其作为函数或变量在 javascript 中使用,可以直接将以上代码拼接成字符串。例如:
var data = json.parse('');
使用 php 的 array_map() 函数
除了上面介绍的方法外,还可以使用 php 内置函数 array_map()
函数将数组中的每个元素转换成 javascript 对象。以下是一个使用 array_map()
函数的示例:
$data = array( array('name' => 'amy', 'age' => 22), array('name' => 'bob', 'age' => 25), array('name' => 'cathy', 'age' => 28) ); $js_array = array_map(function($item) { return "{'name': '{$item['name']}', 'age': {$item['age']}}"; }, $data); echo "[" . implode(",", $js_array) . "]";
以上代码使用 array_map()
函数将 $data
数组中的每个元素转换成 javascript 对象,并将其存放在 $js_array
数组中。最终将 $js_array
数组转换成 json 数组输出。输出结果为:
[{'name': 'amy', 'age': 22},{'name': 'bob', 'age': 25},{'name': 'cathy', 'age': 28}]
总结
本文介绍了两种将 php 数组转换成 javascript 对象数组的方法,其中一种是使用 json_encode()
函数直接将 php 数组转换成 json 字符串,然后使用 json.parse()
函数将其转换成 javascript 对象数组。另外一种则是使用 array_map()
函数将 php 数组的每个元素转换成 javascript 对象。这两种方法都可以实现将 php 数组转换成 javascript 对象数组的功能,读者可以根据自己的需求来选择哪种方法。