我正在使用json_encode()
从MySQL检索数据。
$sd=array();
foreach($rslt as $val){
$sd[] = $val;
}
echo json_encode($sd);
我的问题是如何在所有结果中加入“等级”一词?
示例:如果输出为
97
38
73
如何获得结果:
grade97
grade38
grade73
示例Json输出:
[{"physics":"97","0":"97","chemistry":"38","1":"38","agriculture":"73","2":"73"}]
答案 0 :(得分:2)
您不应该像这样污染您的数据,因为您将来可能需要原始值,并且您将发送大量冗余信息(重复的单词)。
相反,我会在另一个参数中添加您要发送的其他信息。
例如:
$sd=array();
foreach($rslt as $val){
$sd[] = $val;
}
// add another chunk of information
$translations = array('grade' => 'Grade');
// send everything in one json string
echo json_encode(array('data' => $sd, 'translations' => $translations));
现在,您可以在接收端正确构建输出,发送的信息更少,并且如果需要,您可以使用原始值。
答案 1 :(得分:1)
您需要做的就是连接字符串,如下所示:
foreach($rslt as $val){
foreach($val as &$grade){
$grade = "Grade ".$grade;
}
$sd[] = $val;
}
但是,您应该清理阵列。您目前拥有以下结构:
array(
array(
"0" => 97,
"1" => 38,
"2" => 73,
"physics" => 97,
"chemistry" => 38,
"agriculture" => 73,
)
);
我会重做生成此数组的代码,以便得到类似的内容:
array(
array(
"class" => "physics",
"grade" => 97
),
array(
"class" => "chemistry",
"grade" => 38
),
array(
"class" => "agriculture",
"grade" => 73
),
);
它更适合迭代,并且更具可读性。