You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何删除使用json_encode与MySQL获取数组结果时的分隔逗号

问题根因

  • 你调用mysqli_fetch_array时指定了MYSQLI_NUM参数,返回的每行结果是索引数组,json_encode后传到前端的names是二维数组结构,格式为[[30,"Richard","Léa"],[29,"Brown","Mike"]]。数组本身没有replace方法,直接调用会触发JS异常,导致变量异常为空。
  • 循环固定写死遍历10次,如果查询结果行数不足10,会出现下标访问越界错误,加重异常。

解决方案

方案1:PHP端预处理(推荐)

直接在服务端把每行数据拼接为无逗号的字符串,前端开箱即用:

$query = "SELECT id, nom, prénom FROM membres";
$result = mysqli_query($mysqli, $query);
$products = [];
while($product = mysqli_fetch_array($result, MYSQLI_NUM)) {
    // 用空格拼接数组成员,完全避免逗号
    $products[] = implode(' ', $product);
}

前端接收代码不用改:

var names = <?php echo json_encode($products) ?>;

方案2:JS端适配二维数组结构

如果不修改后端代码,前端按数组结构处理即可:

var names = <?php echo json_encode($products) ?>;
// 取数组实际长度遍历,避免越界
for(let x = 0; x < names.length; x++){
    // 把每行的数组成员用空格拼接
    names[x] = names[x].join(' ');
}

两种方案处理后,names的最终结构都是["30 Richard Léa", "29 Brown Mike"],完全符合去除逗号的需求。

内容的提问来源于stack exchange,提问作者Latets

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:48:01