我在找,但没有找到我真正需要的东西。
源结构是从mysql数据库动态生成菜单数组结构:
array (
  2 => array (
    'title' => 'item',
    'children' => array (
      10 => array (
        'title' => 'item',
        'children' => array (
          14 => array (
            'title' => 'item',
          ),
          15 => array (
            'title' => 'item',
          ),
          16 => array (
            'title' => 'item',
            'children' => array (
              23 => array (
                'title' => 'item',
              ),
              24 => array (
                'title' => 'item',
              ),
            ),
          ),
          17 => array (
            'title' => 'item',
            'children' => array (
              20 => array (
                'title' => 'item',
              ),
            ),
          ),
          18 => array (
            'title' => 'item',
          ),
          19 => array (
            'title' => 'item',
          ),
          32 => array (
            'title' => 'item',
            'children' => array (
              33 => array (
                'title' => 'item',
              ),
            ),
          ),
          59 => array (
            'title' => 'item',
          ),
          60 => array (
            'title' => 'item',
            'children' => array (
              61 => array (
                'title' => 'item',
              ),
              62 => array (
                'title' => 'item',
              ),
            ),
          ),
          67 => array (
            'title' => 'item',
          ),
        ),
      ),
      12 => array (
        'title' => 'item',
      ),
      13 => array (
        'title' => 'item',
      ),
    ),
  ),
)
我需要传递所有记录,并根据需要向foreach实际所在的当前位置添加新值。现在我可以使用这个函数来检查记录:
function categorize($menu, $level = 0)
{
foreach ($menu as $key => &$data)
{
if (isset ($data['children']))
{
categorize($data['children'], ($level + 1));
}
}
}
但不知道如何在正确的地方增加新的价值。
array (
  2 => array (
    'level' => 0,
    'first-item' => true,
    'title' => 'item',
    'children' => array (
      10 => array (
        'level' => 1,
    'first-item' => true,
        'title' => 'item',
        'children' => array (
          14 => array (
            'level' => 2,
    'first-item' => true,
            'title' => 'item',
          ),
          15 => array (
            'level' => 2,
            'title' => 'item',
          ),
          16 => array (
            'level' => 2,
            'title' => 'item',
            'children' => array (
              23 => array (
                'level' => 3,
                'first-item' => true,
                'title' => 'item',
              ),
              24 => array (
                'level' => 3,
                'title' => 'item',
              ),
            ),
          ),
          17 => array (
        'level' => 2,
            'title' => 'item',
            'children' => array (
              20 => array (
                'level' => 3,
                'title' => 'item',
              ),
            ),
          ),
          18 => array (
        'level' => 2,
            'title' => 'item',
          ),
          19 => array (
        'level' => 2,
            'title' => 'item',
          ), ....
谢谢你的帮助