PHP-修改多维关联数组

时间:2015-06-13 20:14:21

标签: php multidimensional-array associative-array

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

我尝试使用current(...)等但是这对多维关联数组有效吗?

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

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

如果下一行读取&#34; 1 CONC包括他的职业&#34;

而不是添加一行

[@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次调用的示例,在我的情况下无效。

希望有人能说清楚......非常感谢!

1 个答案:

答案 0 :(得分:2)

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

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

如果你需要连接,请写

$pos .= "concate line";