$myArray = array();
for($i=0;i<2;$i++){
..
.. //get the content logic here
assign it to array
$myArray["item"]["content"] = $item_content;
}
echo json_encode($myArray);
上面的代码产生了这个结果:
哪个错误,因为我没有将它们合并。
我试图像这样合并:
$finalJson = array_merge($finalJson, $myArray);
但echo $finalJson
的输出是一个对象而不是3.
答案 0 :(得分:1)
更新
您的真实问题归结为您在关联数组上使用array_merge
。 array_merge
的行为是重新分配重复密钥(如果它们是关联的)(cf the docs):
如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个键。但是,如果数组包含数字键,则后面的值不会覆盖原始值,但会附加。
由于$myArray
显然正在使用字符串作为键,因此$finalJson
中的值将被重新分配。您需要做的是在每次迭代时创建唯一键,或者只是将$myArray
的值推送到数字索引$finalJson
数组(就像我在下面的原始答案中所示)
问题很简单:
$myArray["item"]["content"] = $item_content;
它在循环内部,每次重新分配$myArray["item"]["content"]
的值,而不是将其添加到数组中。我怀疑你想要做的是在循环的底部添加它(对于$myArray
的每个新值):
$finalJson[] = $myArray;
然后,在下一次迭代中,$myArray
将被重新分配,其新值将附加到$finalJson
变量。
答案 1 :(得分:0)
我有一个棘手的问题。
我做什么。 我从数据库的系统表(DEV,测试产品设置)中生成表的信息,使用PHP来触发…并比较结果,以查看与JavaScript的区别。
我还有一个文档数据库,用于获取其他业务信息,该数据库仅在TEST数据库上安装一次。
因此,我需要连接所有四个环境以获取数据。
我用 如果($ flag ==='i')
for information DB and
elseif ($flag === 's')
用于系统数据库。
结果是$ row_array和$ info_array,必须将它们组合起来,然后将其发送回Javascript。
$json_response = array_merge($rinfo, $rsql );
echo json_encode($json_response, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
我尝试在程序的其他位置进行此合并。
第一次来
elseif($ flag ==='i'){
结果json:
[
{
"0": "ACT",……….
} ][ ]
second time after } //ifelse return also 2 arrays
[{"0":"ACT","1":"Tabelle Akten","2":"hh","3":null,"4":null,"5":"UCC","6":"Y","7":"Reload Data in Test","8":"y","9":"delete all older tha","10":"n","11":" ","12":"y","13":" ","14":"o","15":"y","16":"o","17":"y","18":"y","19":"Diese tabelle speichert die Acten Verweise","20":"Gert Dorn","21":1570254359,"TDESCRIPTION":"n","TTYPE":" ","TREC_ESTIM":"y","TREC_GROWTH":" ","TDOMAIN":"o","TREL_TYPE":"y","TREL_RULES":"o","THOUSEKEEPING":"y","THOUSE_RULES":"y","TCID":"Diese tabelle speichert die Acten Verweise","TCID_RULES":"Gert Dorn","TUSE_UCC":1570254359,"TUSE_DWH":"","TUSE_ODS":"","TUSE_CWF":"","TUSE_IWF":"","TUSE_OWF":"","TUSE_DEP_MANAGER":"","TENTITY_DESCRIPTION":"","TOWNER":""
,"TTIMESTAMP":""**}][{**"0":"ACT","1":"DB2INST1"
,"2":"USERSPACE1","3":null,"4":"2018-11-21 16:43:20.066567","5":"2018-12-07 10:12:10.255759","6":null,"7":"2020-03-26","8":"2018-11-21 16:43:20.343258","9":3,"NAME":"ACT","CREATOR":"DB2INST1","TBSPACE":"USERSPACE1","REMARKS":"","CTIME":"2018-11-21 16:43:20.066567","STATS_TIME":"2018-12-07 10:12:10.255759","STATISTICS_PROFILE":"","LASTUSED":"2020-03-26","ALTER_TIME":"2018-11-21 16:43:20.343258","COLCOUNT":3}]
您可以从
下载的程序代码和结果希望您能帮到亲切的问候
答案 2 :(得分:-1)
你考虑过使用array_push吗?
array_push总是比myArray [] = $ value
更受欢迎