在我的情况下,array_values保留了关联密钥


array_values kept associate key in my case

$array = array();
foreach($row as $data){
$array[$data] = array(
'id' => $data;
)
}
$result = array_values($array);
json_encode($result);

使用上面的代码,我得到的是这样的

[{"id":"123"},{"id":"456"},{"id":"987"}]

但为什么不["123","456","987"]呢?

因为你正在有效地构建一个数组,它的元素也是数组(每个元素包含一个元素(,其中key名为 id,值123456等。

因此,如果您想接收类似 ["123","456","987"] 的输出,则应将代码更改为:

$array = array();
foreach($row as $data){
    $array[$data] = $data;
}
$result = array_values($array);
json_encode($result);

顺便说一句,我认为您实际上不需要$data成为创建的数组中的键,因此您可能会最终得到以下代码:

$array = array();
foreach($row as $data){
    $array[] = $data;
}
json_encode($array);

。但这取决于您的需求。