PHP -修改多维关联数组中上次访问的元素的值



我正在读取一个 GEDCOM 格式的家谱平面文件,并从数据中生成一个数组以暂存到表中。如果我遇到值CONC <some value>,那么,我需要将<some value>附加到刚刚插入的最后一个元素的值(无论维度深度如何),而不是添加元素。

我尝试使用current(...)等,但这适用于多维关联数组吗?

请考虑数组中的以下元素:

[@N163@] => Array ( [INDI] => Array ( [TEXT] => Some data of this person) ) 

如果下一行显示"1 CONC,包括他的职业"

而不是像这样添加一行

[@N163@] => Array (  
                [INDI] => Array ( [TEXT] => Some data of this person)  
                [INDI] => Array ( [CONC] => including his profession) )  

我希望数组如下所示:

[@N163@] => Array ( 
                [INDI] => Array ( [TEXT] => Some data of this person including his profession) )

到目前为止,我所研究的:

end($theArray) 设置指向上次插入元素的指针,后跟 $theArray[key($theArray)] = .... 以更新此元素。

但是我没有让这种方法适用于多维数组和/或它变得非常混乱。

和:

合并两个数组,例如 +=符号,但这似乎只会覆盖一个新元素,而不会影响最后一个元素,如果键相同

和:

带有foreach调用的示例,这在我的情况下没有帮助。

希望有人能有所启发...非常感谢!

添加$array[@N163@][INDI][TEXT] = 'smtng';时,可以保存位置

$pos = &$array[@N163@][INDI][TEXT];

如果您需要连接,请写

$pos .= "concate line";

相关内容

  • 没有找到相关文章

最新更新