我正在获取json数据

$sql=mysqli_query($con,"select * FROM mohamiusermeta  where meta_key='websiteurl' or meta_key='profile_photo' or meta_key = 'Office' or meta_key='address_user' or meta_key='agentarea' or meta_key='offertext' or meta_key='officename' or meta_key='cover_photo' or meta_key='membertype' order by user_id desc");
$newarray = array();
$subArray = array();
while($row=mysqli_fetch_assoc($sql))
{
    $output[$row['meta_key']] = $row['meta_value'];
    $subArray[user_id]=$row['user_id'];
    $subArray[Office]=$output['Office'];

    $subArray[officename]=$output['officename'];
    $subArray[address_user]=$output['address_user'];
    $subArray[profile_photo]=$output['profile_photo'];
    $subArray[cover_photo]=$output['cover_photo'];
    $subArray[agentarea]=$output['agentarea'];
    $subArray[offertext]=$output['offertext'];
    $subArray[websiteurl]=$output['websiteurl'];
    $subArray[membertype]=$output['membertype'];
    $newarray[] = $subArray;
}

json_encode($newarray);

echo(json_encode($newarray,JSON_UNESCAPED_UNICODE));

mysqli_close();
?>


但浏览器中的结果在数据库中具有值的第一行中获得空值和重复值

提取数组有什么问题?
检查浏览器中的结果访问http://lifecareclub.net/api/test.php

最佳答案

当您修改$newarray的成员时,您将修改在下一个迭代中已添加到$subArray的内容。

为了解决这个问题,在第一次分配给它的一个键之前,在循环内移动$subArray = array();。这样,您可以在每次迭代中创建一个新数组,从而从您在上一次迭代中为其成员分配的数据中“松散”。

注意:您需要在$subArray['user_id'] = ...和其他作业中使用引号,但我想这是您的问题中的错字。

10-08 18:55