这个问题是基于我的另一个问题,这里是关于合适的数组处理algorithm。将元素的完整位置存储在多维数组中以便重用
在我的情况下,我想展平一个多维数组,但我需要将完整的关键点存储到该元素以供稍后重用。
例如:
array(
0 => array(
'label' => 'Item1',
'link' => 'http://google.com',
'children' => null
)
1 => array(
'label' => 'Item2',
'link' => 'http://google.com',
'children' => array(3 => array(
'label' => 'SubmenuItem1',
'link' => 'http://www.yahoo.com',
'children' => null
)
)
)
2 => array(
'label' => 'Item3',
'link' => 'http://google.com',
'children' => null
)
)
应扁平弄成下表
Key Link
===================================
[0] http://google.com
[1] http://google.com
[2] http://google.com
[1][3] http://yahoo.com
的问题等,是我在我可以很容易地存储在一个多维数组的元素的位置,我发现以后很难找回那个元素。例如,如果我将密钥存储为$key = "[1][3]"
,则无法使用$myarray[$key]
访问它。无论如何要做到这一点?
[Flatten multidimensional array concatenating keys]可能的重复(http://stackoverflow.com/questions/9546181/flatten-multidimensional-array-concatenatingkeys) – Joseph 2012-03-12 08:11:55
由于数组深度不固定,我认为你可以使用(i)'eval'函数 - 可以吸引大量-1s的东西(ii)使用递归 – 2012-03-12 08:25:42
@SalmanA:您可以详细说明如何使用递归吗?投票结束的人:这个问题的主要观点是如何从一个存储的关键字处理多维数组,而不是如何平坦多维数组。 – F21 2012-03-12 09:12:26