我有一个数组使用我想让我的json响应,但我无法做到这一点:
print_r($exist_email);
Array
(
[user_id] => 3
)
我试过这个
$response_array['status']='Exist User';
$response_array['message']='Email already exists.';
$response_array['data']=$exist_email;
$this->response($this->json($response_array), 200);
public function response($data,$status=200){
$this->_code = ($status)?$status:200;
$this->set_headers();
echo $data;
exit;
}
protected function json($data){
if(is_array($data)){
return json_encode($data);
}
}
我收到回复
{
"status": "Exist User",
"message": "Email already exists.",
"data": {
"user_id": "3"
}
}
我的预期输出
{
"status": "Exist User",
"message": "Email already exists.",
"data": [
{
"user_id": "3"
}
]
}
答案 0 :(得分:3)
根据我的评论,您应该在此行$response_array['data']=$exist_email;
以上行可以替换为以下行
$response_array['data'][0]=$exist_email;
OR
$response_array['data'][]=$exist_email;
您可以在此处查看所需的Output
答案 1 :(得分:1)
如果您需要阵列,可以:
$response_array['data'] = array();
$response_array['data'][] = $exist_email;
$response_array['data'][] = $exist_email2; /* For the second, (optional) */
答案 2 :(得分:0)
您的预期输出是数组数组,因此您需要将$response_array['data']
作为数组。
只需替换此行
$response_array['data']=$exist_email;
带
$response_array['data'][]=$exist_email;
答案 3 :(得分:0)
您需要使用数组来获得所需的输出。
您可以尝试以下代码:
<?php
$response_array['status']='Exist User';
$response_array['message']='Email already exists.';
$response_array['data'][]= array('user_id' => 3);
echo json_encode($response_array, JSON_PRETTY_PRINT);