[英]json encode and php array
我正在尝试获取以下输出,将产生以下json
[{"description":"name","errorcode":777},{"description":"Department","errorcode":"yyy"}]
PHP
if(empty($name)){
$errordesc[] = array('description' => 'name','errorcode' => 777);
}
else if(empty($email)){
$errordesc[] = array('description' => 'Department','errorcode' => "yyy");
}
当我做
echo json_encode($errordesc);
它给出的输出为
[{"description":"name","errorcode":-2}]
问题出在php数组中。我应该使用array_push吗? 请指教。谢谢。
这是您代码中的语法错误
else if(empty($email){<-----here
else if(empty($email)){<-----must be like this
看到您的代码实际上我认为该数组仅包含一项,这就是为什么您不需要正确地执行逻辑就不需要将数组推入。
$errordesc[] = array('description' => 'name1','errorcode' => 1);
$errordesc[] = array('description' => 'name2','errorcode' => 2);
echo json_encode($errordesc);
您将获得带有两个项目的json字符串
[{"description":"name1","errorcode":1},{"description":"name2","errorcode":2}]
使用else
意味着您只会在数组中获得一个或另一个条目。 如果您都想要它们,请尝试:
if(empty($name)){
$errordesc[] = array('description' => 'name','errorcode' => 777);
}
if(empty($email){
$errordesc[] = array('description' => 'Department','errorcode' => "yyy");
}
我不确定为什么丢失电子邮件的错误是Department
而不是email
,但这是另一个问题。
您的代码当前具有以下结构:
if (condition) {
# code...
}
elseif (condition) {
# code...
}
仅当第一个if
条件的值为FALSE
此块中的代码才会执行。 您得到的JSON输出表明只考虑了一个条件块。
如果要进行两项检查,请尝试使用以下结构:
if (condition) {
# code...
}
if (condition) {
# code...
}
使用您的代码,它应该看起来像:
if(empty($name)){
$errordesc[] = array('description' => 'name','errorcode' => 777);
}
if(empty($email)) {
$errordesc[] = array('description' => 'Department','errorcode' => "yyy");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.