插入关联数组 php,PHP – 需要帮助在给定键的情况下将数组插入关联数组

好的,所以我有一个像这样的数组:

$buttons = array(

'home' => array(

'title' => $txt['home'],

'href' => $scripturl,

'show' => true,

'sub_buttons' => array(

),

'is_last' => $context['right_to_left'],

),

'help' => array(

'title' => $txt['help'],

'href' => $scripturl . '?action=help',

'show' => true,

'sub_buttons' => array(

),

),

'search' => array(

'title' => $txt['search'],

'href' => $scripturl . '?action=search',

'show' => $context['allow_search'],

'sub_buttons' => array(

),

),

'admin' => array(

'title' => $txt['admin'],

'href' => $scripturl . '?action=admin',

'show' => $context['allow_admin'],

'sub_buttons' => array(

'featuresettings' => array(

'title' => $txt['modSettings_title'],

'href' => $scripturl . '?action=admin;area=featuresettings',

'show' => allowedTo('admin_forum'),

),

'packages' => array(

'title' => $txt['package'],

'href' => $scripturl . '?action=admin;area=packages',

'show' => allowedTo('admin_forum'),

),

'errorlog' => array(

'title' => $txt['errlog'],

'href' => $scripturl . '?action=admin;area=logs;sa=errorlog;desc',

'show' => allowedTo('admin_forum') && !empty($modSettings['enableErrorLogging']),

),

'permissions' => array(

'title' => $txt['edit_permissions'],

'href' => $scripturl . '?action=admin;area=permissions',

'show' => allowedTo('manage_permissions'),

'is_last' => true,

),

),

),

'moderate' => array(

'title' => $txt['moderate'],

'href' => $scripturl . '?action=moderate',

'show' => $context['allow_moderation_center'],

'sub_buttons' => array(

'modlog' => array(

'title' => $txt['modlog_view'],

'href' => $scripturl . '?action=moderate;area=modlog',

'show' => !empty($modSettings['modlog_enabled']) && !empty($user_info['mod_cache']) && $user_info['mod_cache']['bq'] != '0=1',

),

'poststopics' => array(

'title' => $txt['mc_unapproved_poststopics'],

'href' => $scripturl . '?action=moderate;area=postmod;sa=posts',

'show' => $modSettings['postmod_active'] && !empty($user_info['mod_cache']['ap']),

),

'attachments' => array(

'title' => $txt['mc_unapproved_attachments'],

'href' => $scripturl . '?action=moderate;area=attachmod;sa=attachments',

'show' => $modSettings['postmod_active'] && !empty($user_info['mod_cache']['ap']),

),

'reports' => array(

'title' => $txt['mc_reported_posts'],

'href' => $scripturl . '?action=moderate;area=reports',

'show' => !empty($user_info['mod_cache']) && $user_info['mod_cache']['bq'] != '0=1',

'is_last' => true,

),

),

),

'profile' => array(

'title' => $txt['profile'],

'href' => $scripturl . '?action=profile',

'show' => $context['allow_edit_profile'],

'sub_buttons' => array(

'summary' => array(

'title' => $txt['summary'],

'href' => $scripturl . '?action=profile',

'show' => true,

),

'account' => array(

'title' => $txt['account'],

'href' => $scripturl . '?action=profile;area=account',

'show' => allowedTo(array('profile_identity_any', 'profile_identity_own', 'manage_membergroups')),

),

'profile' => array(

'title' => $txt['forumprofile'],

'href' => $scripturl . '?action=profile;area=forumprofile',

'show' => allowedTo(array('profile_extra_any', 'profile_extra_own')),

'is_last' => true,

),

),

),

'pm' => array(

'title' => $txt['pm_short'],

'href' => $scripturl . '?action=pm',

'show' => $context['allow_pm'],

'sub_buttons' => array(

'pm_read' => array(

'title' => $txt['pm_menu_read'],

'href' => $scripturl . '?action=pm',

'show' => allowedTo('pm_read'),

),

'pm_send' => array(

'title' => $txt['pm_menu_send'],

'href' => $scripturl . '?action=pm;sa=send',

'show' => allowedTo('pm_send'),

'is_last' => true,

),

),

),

'calendar' => array(

'title' => $txt['calendar'],

'href' => $scripturl . '?action=calendar',

'show' => $context['allow_calendar'],

'sub_buttons' => array(

'view' => array(

'title' => $txt['calendar_menu'],

'href' => $scripturl . '?action=calendar',

'show' => allowedTo('calendar_post'),

),

'post' => array(

'title' => $txt['calendar_post_event'],

'href' => $scripturl . '?action=calendar;sa=post',

'show' => allowedTo('calendar_post'),

'is_last' => true,

),

),

),

'mlist' => array(

'title' => $txt['members_title'],

'href' => $scripturl . '?action=mlist',

'show' => $context['allow_memberlist'],

'sub_buttons' => array(

'mlist_view' => array(

'title' => $txt['mlist_menu_view'],

'href' => $scripturl . '?action=mlist',

'show' => true,

),

'mlist_search' => array(

'title' => $txt['mlist_search'],

'href' => $scripturl . '?action=mlist;sa=search',

'show' => true,

'is_last' => true,

),

),

),

'login' => array(

'title' => $txt['login'],

'href' => $scripturl . '?action=login',

'show' => $user_info['is_guest'],

'sub_buttons' => array(

),

),

'register' => array(

'title' => $txt['register'],

'href' => $scripturl . '?action=register',

'show' => $user_info['is_guest'],

'sub_buttons' => array(

),

'is_last' => !$context['right_to_left'],

),

'logout' => array(

'title' => $txt['logout'],

'href' => $scripturl . '?action=logout;%1$s=%2$s',

'show' => !$user_info['is_guest'],

'sub_buttons' => array(

),

'is_last' => !$context['right_to_left'],

),

);

现在我希望能够在上面的数组中的任何键之前或之后插入一个数组.我想插入的数组可能如下所示:

$new_menu_buttons['testing'] = array(

'title' => $txt['testing'],

'href' => $scripturl . '?action=testing',

'show' => true,

'target' => '_self',

'active_button' => false,

);

有人建议使用函数来处理这个和使用的方法,但我不知道如何做到这一点,他们也希望偏移这些函数.以下是有人推荐我使用的函数结构,而不仅仅是在需要时调用这些函数:

function array_insert_before($array, $key, $new_array)

{

// Splice array in two at key, keeping key on the right side

// Append new value on the left tail

// Glue both arrays into a new array

// Return new array

}

function array_insert_after($array, $key, $new_array)

{

// Symmetric with right & left switched

}

所以,我希望能够像这样调用函数:

如果它需要在键之后,指定’home’:

$menu_buttons = array_insert_after($buttons, 'home', $new_menu_buttons);

如果它需要在密钥之前,指定的’home’:

$menu_buttons = array_insert_before($buttons, 'home', $new_menu_buttons);

基本上,我真的需要这些功能的帮助,任何帮助都会很棒.

我应该使用array_splice还是array_slice?有人愿意带着一些实际的代码向我开始正确的方向吗?

多谢你们 :)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值