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

如何清理PHP中mysqli_fetch_array返回数组的数字索引仅保留列名

PHP双索引数组保留列名键解决方案

你使用array_unique()无法达到预期是正常的,该函数的作用是去除数组中的重复值,和删除数字索引的需求完全不匹配。

最优方案:修改数据读取逻辑

mysqli_fetch_array()默认使用MYSQLI_BOTH作为结果模式,所以会同时返回数字索引和列名关联索引,你只需要调整读取参数,就能直接得到仅含列名键的数组,无需后续额外处理:

// 方案1:给mysqli_fetch_array指定MYSQLI_ASSOC参数
$gti = mysqli_fetch_array($get_trans_info_query, MYSQLI_ASSOC);
$gt = mysqli_fetch_array($get_trans_query, MYSQLI_ASSOC);

// 方案2:直接使用封装好的mysqli_fetch_assoc()函数,效果完全一致
$gti = mysqli_fetch_assoc($get_trans_info_query);
$gt = mysqli_fetch_assoc($get_trans_query);

调整后读取出来的数组就只会保留数据库列名作为键,不会出现数字索引。

备选方案:处理已生成的双索引数组

如果你不方便修改原有数据读取逻辑,已经拿到了同时带数字索引和列名索引的数组,可以通过以下方法过滤掉数字键:

// 封装过滤方法:仅保留字符串类型的键(即数据库列名)
function filterAssocKeyOnly($originArr) {
    return array_filter($originArr, function($key) {
        return is_string($key);
    }, ARRAY_FILTER_USE_KEY);
}

// 调用方法处理已有数组
$gt = filterAssocKeyOnly($gt);
$gti = filterAssocKeyOnly($gti);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 01:24:05