我有两个数组,即arr和arr2。具有公共值的合并阵列
var arr=[{"month":"January","url":1},{"month":"February","url":102},{"month":"March","url":192}];
var arr2=[{"month":"January","ip":12},{"month":"June","ip":10}];
是否有可能从上面的数组中获得数组?
result=[{"month":"January","url":1,"ip":12},{"month":"February","url":102},{"month":"March","url":192},{"month":"June","ip":10}];
如果我使用array_merge然后我得到的答案
result=[{"month":"January","url":1},{"month":"February","url":102},{"month":"March","url":192},{"month":"January","ip":12},{"month":"June","ip":10}];
发生这种情况是因为如果键是数字,'array_merge'不会合并,而是追加新的数据。从PHP手册:*如果输入数组具有相同的字符串键,则该键的后面的值将覆盖前一个。但是,如果数组中包含数字键,则后面的值不会覆盖原始值,但会被追加。* – tilz0R
ok先生。有没有可能获得预期的答案? – Raj
在使用array_merge或更好的array_merge_recursive合并在一起之前,请确保您的数组包含非数字键。例如,您可以将月份名称设置为月份数据的关键字。 – tilz0R