0

次の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 を使用する必要がありますか? アドバイスをお願いします。よろしくお願いします。

4

3 に答える 3

3

はコードの構文エラーです

else if(empty($email){<-----here

else if(empty($email)){<-----must be like this 

あなたのコードを実際に見ると、配列にはアイテムが1つしか含まれていないと思います。そのため、出力配列のプッシュは必要なく、ロジックを修正するだけです。

 $errordesc[] = array('description' => 'name1','errorcode' =>  1); 
 $errordesc[] = array('description' => 'name2','errorcode' =>  2); 

echo json_encode($errordesc);

2つのアイテムでjson文字列を取得します

[{"description":"name1","errorcode":1},{"description":"name2","errorcode":2}]
于 2013-10-04T16:12:09.270 に答える
1

を使用elseすると、配列内のいずれかのエントリを取得できます。両方が必要な場合は、次を試してください。

if(empty($name)){        
    $errordesc[] = array('description' => 'name','errorcode' =>  777);           
}
if(empty($email){
    $errordesc[] = array('description' => 'Department','errorcode' =>  "yyy");
}

Departmentメールが見つからないというエラーがではなくと表示される理由はわかりませんemailが、それは別の問題です。

于 2013-10-04T16:18:52.193 に答える