我正在查询一个SQL数据库并返回一些值。我有Field1
和Field2
,它们给出了一个日期列表(最终可能有多达200个值/日期)。然后我将当前日期重新格式化为所需的格式。
// While we have valid rows
while( $row = sqlsrv_fetch_array($rs, SQLSRV_FETCH_ASSOC)) {
//build an array of all fields and their values
$outputstring[] = $row;
}
// for each record, IF the fields exist, reformat the date
foreach($outputstring as &$each) {
if($each['Field1']) $each['Field1'] = $each['Field1']->format('m-d H:i');
if($each['Field2']) $each['Field2'] = $each['Field2']->format('m-d H:i');
}
// Output as JSON
echo JSE($outputstring);
我现在要做的是在不修改SQL查询的情况下,在数组被解析为JSON之前,更改Field1
和Field2
的名称。
我通常只修改SQL;
Select Field1 as startdate, Field2 as enddate
但这不是一个选项,因为要使用的值必须来自转换函数。
在最终输出中,Field 1需要显示为
lang('Field1');
此函数根据用户在生成输出之前选择的语言,将字段名称翻译为33种语言中的一种。
我可以使用类似的东西:
SELECT Field1 as ". lang('Field1') .", Field2 as ". lang('Field2') ."
但我更喜欢PHP选项,它将语言值应用于数组中的所有键。如前所述,在最终版本中可能有数百个字段,如果可以避免,我真的不想硬编码每个可能的值。
有什么想法吗?
2条答案
按热度按时间ca1c2owp1#
如果我没理解错的话,你能用这个吗?
col17t5w2#
再次感谢罗恩为我指明了正确的方向。
ReplaceKey是一个函数,它查看输出数组和我的语言文件,它是另一个输入值数组,具有匹配的输出值;
其中ReplaceKey为;
数组被循环,如果Field 1出现在其中,它会被替换为单词'Time',然后用新的键重建输出数组。
再次感谢您的帮助!