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

PHP数组去重后如何修改输出格式?重置索引并转为无键格式

问题描述

我有如下PHP代码:

$id_utt1 = explode(',', $_GET['arr']);

$id_utt = array_unique($id_utt1);

var_dump($id_utt);

执行后输出的数组带有非连续键名:

array(24) { [0]=> string(3) "560" [6]=> string(3) "515" [12]=> string(3) "620" [14]=> string(3) "544" [15]=> string(3) "674" [16]=> string(3) "602" [22]=> string(3) "745" [25]=> string(3) "755" [29]=> string(3) "522" [31]=> string(3) "545" [32]=> string(3) "555" [33]=> string(3) "562" [34]=> string(3) "563" [35]=> string(3) "573" [36]=> string(3) "584" [39]=> string(3) "643" [41]=> string(3) "696" [42]=> string(3) "698" [43]=> string(3) "699" [44]=> string(3) "700" [45]=> string(3) "709" [46]=> string(3) "730" [47]=> string(3) "735" [49]=> string(3) "590" }

但我需要将数组处理为连续索引的无键名格式,示例如下:

[560,515,620,544,674,602,745,755,522,545,555,562,563,573,584,643,696,698,699,700,709,730,735,590]
解决方案

方式一:重置索引后用JSON输出

array_unique 会保留原数组的键名,导致索引不连续。可以用 array_values() 重置数组索引为连续数字,再通过 json_encode() 直接输出目标格式:

$id_utt1 = explode(',', $_GET['arr']);
$id_utt = array_unique($id_utt1);
// 重置数组索引为连续序列
$id_utt = array_values($id_utt);
// 输出为符合要求的数组格式
echo json_encode($id_utt);

方式二:手动拼接字符串

如果不想依赖JSON函数,也可以手动遍历拼接成目标字符串:

$id_utt1 = explode(',', $_GET['arr']);
$id_utt = array_unique($id_utt1);
// 先重置索引
$id_utt = array_values($id_utt);
// 拼接成目标格式字符串
$result = '[' . implode(',', $id_utt) . ']';
echo $result;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:15:33