使用array_unique函数时 JSON 格式无效



我已经通过编写删除了以下数组的重复项目:

$outcome['id'] = array_unique($outcome['id'], SORT_REGULAR);

但我得到不需要的 JSON 输出

"id": {
"0": {
"id": 947,
"label": "ABCD"
},
"1": {
"id": 2175,
"label": "EFGH"
},
"2": {
"id": 15,
"label": "IJKL"
}
}

而不是下面的,这是理想的JSON输出:

"id": [
{
"id": 947,
"label": "ABCD"
},
{
"id": 2175,
"label": "EFGH"
},
{
"id": 15,
"label": "IJKL"
}
]

在 PHPStorm 上调试时,显示的结果是数组格式,但在 Postman 上,结果正在转换为对象!

array_unique

删除项目时保留键。这意味着它将删除一些数组条目,但保持剩余项目的索引不变,从而导致非连续的数字索引(间隙(。数字索引中存在间隙的数组或具有非数字索引的数组计为关联数组,在 JSON 中成为 JSON 对象。您可以使用array_values重置索引

,例如
$outcome['id']  = array_values(array_unique($outcome['id'], SORT_REGULAR));

最新更新