将stdclass对象数组转换为json正确

时间:2017-08-24 20:56:39

标签: php arrays json mysqli

对不起我的英文,我需要帮助,我想转换一个会返回此信息的查询。

{"ids":"1","user":"aki","last":"terris","job":"programmer"}{"ids":"1","user":"ako","last":"acros","job":"Artist"}

将其更改为

{
  "users": [
    {
      "user": "aki",
      "last": "terris",
      "job": "programmer"
    },
    {
      "user": "ako",
      "last": "acros",
      "job": "Artist"
    }
  ]
}

我尝试了while,foreach但没有给我一个有效的格式,一些帮助

协商:

$sql = $db->query("SELECT * FROM user_s WHERE ids = '1' ");    
$set_users = $sql;

前:

$entity = array();    
while ($get_users = $set_users->fetch_object()) {

    $entity = array(
        'id' => $get_users->id,
        'user' => $get_users->user
        );

}

$fsi = array(
    'users' => $entity, 
    );

echo $fsi;

2 个答案:

答案 0 :(得分:0)

试试这个:

$results = new \stdClass;
$results->users = [];

while ($get_users = $set_users->fetch_object()) {

    $entity = array(
        'user' => $get_users->user,
        'last' => $get_users->last,
        'job'  =>  $get_users->job,
    );
    $results->users[] = $entity;
}

echo json_encode($results);

答案 1 :(得分:0)

您可以使用fetch_allMYSQLI_ASSOC选项,以所需格式立即获取数据,即作为关联数组,在使用json_encode转换时将呈现JSON对象表示法:< / p>

$fsi = [ 'users' => $set_users->fetch_all(MYSQLI_ASSOC) ];    
echo json_encode($fsi);

确保使用的SQL查询仅选择您希望以JSON结尾的字段。