无法在'多维数组中声明新数组

时间:2014-04-02 18:59:48

标签: php mysql arrays function multidimensional-array

我有这段代码:

<?php
foreach($arrs_menu as $show_submenu => $k){
    $get_parent_menus[$k['donemen']][] = array(
        $k['id_page'] => $k['id_page']
    );
}
?>

这里的问题是,我试图在$get_parent_menus[$k['donemen']]内放置一个新数组,所以当我放置这个[]时,为了不替换当前数组,并创建一个新的,它给了我一个错误:[]运算符不支持字符串。

如果我将其删除,我可以正常使用,但只能正确设置一次。

此代码有什么问题?

1 个答案:

答案 0 :(得分:0)

$get_parent_menus[$k['donemen']]似乎是一个字符串,而不是一个数组。

你可以做的是,如果原始值不是数组,则将原始值放在数组中:

if (!is_array($get_parent_menus[$k['donemen']]))
{
  // trying to keep the original value although I don't know where the key should come from...
  $get_parent_menus[$k['donemen']] = array(array('some_key' => $get_parent_menus[$k['donemen']]));
}
$get_parent_menus[$k['donemen']][] = array($k['id_page'] => $k['id_page']);