如何将PHP二维数组转换为指定格式的JavaScript对象属性
实现步骤
1. PHP端处理数组并转换为JSON
PHP内置的json_encode函数可以直接完成数组到JSON格式的转换,你需要加JSON_FORCE_OBJECT参数保证索引数组转为JS对象而不是数组,如果需要匹配你示例中lat、lng为字符串的格式,可以先遍历做类型转换:
<?php // 原始数组 $originArr = [ [ 'name' => 'Ville1', 'description' => 'adresse1', 'lng' => -10.35, 'lat' => 29.1833 ], [ 'name' => 'Ville2', 'description' => 'description2', 'lng' => 12.61667, 'lat' => 38.3833 ] ]; // 可选:将lat、lng转为字符串类型,匹配目标格式要求 foreach ($originArr as &$item) { $item['lat'] = strval($item['lat']); $item['lng'] = strval($item['lng']); // 如果你示例中的数据顺序是写反了需要调整,可在这里做对应修改 } unset($item); // 强制转为JSON对象,避免索引数组被转为JS数组 $locationJson = json_encode($originArr, JSON_FORCE_OBJECT); ?>
2. 赋值到JavaScript对象
如果是后端直接渲染页面的场景,直接输出JSON到JS代码中即可:
const jsObject = { // 你的其他JS对象属性 locations: <?php echo $locationJson; ?> // 你的其他JS对象属性 };
如果是前后端分离的AJAX场景,PHP接口直接返回上述生成的JSON,前端拿到响应后直接赋值即可:
// 假设fetch请求拿到的响应数据为res const jsObject = { locations: res };
内容的提问来源于stack exchange,提问作者René Wetta
相关产品推荐
相关产品推荐

