编辑php查询以获取正确的json数据
我有一个包含3列的表编辑php查询以获取正确的json数据,php,json,Php,Json,我有一个包含3列的表(用户id、元键、元值) 我下面的代码根据需要获取json数据以显示为(key=value),但我也希望像这样显示用户id列(用户id=value)。现在,user\u id仅显示为一个值。如何做到这一点 我的php代码 $sql=mysqli_query($con,"select * FROM mohamiusermeta where meta_key='websiteurl' or meta_key='profile_photo' or meta_key = '
(用户id、元键、元值)
我下面的代码根据需要获取json数据以显示为(key=value)
,但我也希望像这样显示用户id
列(用户id=value)
。现在,user\u id
仅显示为一个值。如何做到这一点
我的php代码
$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'");
$newarray = array();
while($row=mysqli_fetch_assoc($sql))
{
$output[$row['meta_key']] = $row['meta_value'];
$newarray[]=$output;
}
json_encode($newarray);
echo(json_encode($newarray,JSON_UNESCAPED_UNICODE));
mysqli_close();
?>
我的json结果显示如下
meta_key: meta_value
meta_key = meta_value
user_id= id value
{
meta_key: meta_value
meta_key: meta_value
....
user_id= id value
{
meta_key: meta_value
meta_key: meta_value
我想用user\u id列将结果分组,如下所示
meta_key: meta_value
meta_key = meta_value
user_id= id value
{
meta_key: meta_value
meta_key: meta_value
....
user_id= id value
{
meta_key: meta_value
meta_key: meta_value
您可以使用多维数组对元数据进行分组:
while ($row = mysqli_fetch_assoc($sql)) {
if (!array_key_exists($row['user_id'], $newarray)) {
$newarray[$row['user_id']] = [];
}
$newarray[$row['user_id']][$row['meta_key']] = $row['meta_value'];
}
这将创建以下输出:
{'123':{'key1': 'value1', 'key3':'value3'}, 'user2':{'key2':'value2'}}
因此,在此解决方案中,用户id
本身将成为元值的关键,所有值都将按其用户id
分组。如果还希望使用键用户id
指定用户id
,可以将其添加到用户id
元键数组的初始化中:
if (!array_key_exists($row['user_id'], $newarray)) {
$newarray[$row['user_id']] = ['user_id' => $row['user_id']];
}
这将产生以下结果:
{'123':{'user_id': '123', 'key1': 'value1', 'key3':'value3'}, 'user2':{'user_id': 'user2', 'key2':'value2'}}
您可以使用多维数组对元数据进行分组:
while ($row = mysqli_fetch_assoc($sql)) {
if (!array_key_exists($row['user_id'], $newarray)) {
$newarray[$row['user_id']] = [];
}
$newarray[$row['user_id']][$row['meta_key']] = $row['meta_value'];
}
这将创建以下输出:
{'123':{'key1': 'value1', 'key3':'value3'}, 'user2':{'key2':'value2'}}
因此,在此解决方案中,用户id
本身将成为元值的关键,所有值都将按其用户id
分组。如果还希望使用键用户id
指定用户id
,可以将其添加到用户id
元键数组的初始化中:
if (!array_key_exists($row['user_id'], $newarray)) {
$newarray[$row['user_id']] = ['user_id' => $row['user_id']];
}
这将产生以下结果:
{'123':{'user_id': '123', 'key1': 'value1', 'key3':'value3'}, 'user2':{'user_id': 'user2', 'key2':'value2'}}