<?php function custombuttons_generate_children(&$options, $a, $m, $k) { foreach ($m as $key => $label) { $options[$a[$k]][$new_key] = $new_label; } } else { foreach ($options[$a[$k]] as $key => $label) { foreach ($m as $mkey => $mlabel) { $options[$a[$k]][$new_key] = $new_label; } } } } custombuttons_generate_children($options, $a, $m, $k); } } function custombuttons_action_options_list() { 'left' => 'LEFT', 'middle' => 'MIDDLE', 'right' => 'RIGHT', ); 'ctrl' => 'CTRL', 'alt' => 'ALT', 'shift' => 'SHIFT', 'double' => 'DOUBLE', ); foreach ($a as $key => $label) { $options[$key] = $label; custombuttons_generate_children($options, $a, $m, $key); } } custombuttons_action_options_list(); ?>
Standard input is empty
Array
(
[left] => LEFT
[LEFT] => Array
(
[left_ctrl] => CTRL+LEFT
[left_alt] => ALT+LEFT
[left_shift] => SHIFT+LEFT
[left_double] => DOUBLE+LEFT
[left_ctrl_alt] => ALT+CTRL+LEFT
[left_ctrl_shift] => SHIFT+CTRL+LEFT
[left_ctrl_double] => DOUBLE+CTRL+LEFT
[left_alt_ctrl] => CTRL+ALT+LEFT
[left_alt_shift] => SHIFT+ALT+LEFT
[left_alt_double] => DOUBLE+ALT+LEFT
[left_shift_ctrl] => CTRL+SHIFT+LEFT
[left_shift_alt] => ALT+SHIFT+LEFT
[left_shift_double] => DOUBLE+SHIFT+LEFT
[left_double_ctrl] => CTRL+DOUBLE+LEFT
[left_double_alt] => ALT+DOUBLE+LEFT
[left_double_shift] => SHIFT+DOUBLE+LEFT
[left_ctrl_alt_shift] => SHIFT+ALT+CTRL+LEFT
[left_ctrl_alt_double] => DOUBLE+ALT+CTRL+LEFT
[left_ctrl_shift_alt] => ALT+SHIFT+CTRL+LEFT
[left_ctrl_shift_double] => DOUBLE+SHIFT+CTRL+LEFT
[left_ctrl_double_alt] => ALT+DOUBLE+CTRL+LEFT
[left_ctrl_double_shift] => SHIFT+DOUBLE+CTRL+LEFT
[left_alt_ctrl_shift] => SHIFT+CTRL+ALT+LEFT
[left_alt_ctrl_double] => DOUBLE+CTRL+ALT+LEFT
[left_alt_shift_ctrl] => CTRL+SHIFT+ALT+LEFT
[left_alt_shift_double] => DOUBLE+SHIFT+ALT+LEFT
[left_alt_double_ctrl] => CTRL+DOUBLE+ALT+LEFT
[left_alt_double_shift] => SHIFT+DOUBLE+ALT+LEFT
[left_shift_ctrl_alt] => ALT+CTRL+SHIFT+LEFT
[left_shift_ctrl_double] => DOUBLE+CTRL+SHIFT+LEFT
[left_shift_alt_ctrl] => CTRL+ALT+SHIFT+LEFT
[left_shift_alt_double] => DOUBLE+ALT+SHIFT+LEFT
[left_shift_double_ctrl] => CTRL+DOUBLE+SHIFT+LEFT
[left_shift_double_alt] => ALT+DOUBLE+SHIFT+LEFT
[left_double_ctrl_alt] => ALT+CTRL+DOUBLE+LEFT
[left_double_ctrl_shift] => SHIFT+CTRL+DOUBLE+LEFT
[left_double_alt_ctrl] => CTRL+ALT+DOUBLE+LEFT
[left_double_alt_shift] => SHIFT+ALT+DOUBLE+LEFT
[left_double_shift_ctrl] => CTRL+SHIFT+DOUBLE+LEFT
[left_double_shift_alt] => ALT+SHIFT+DOUBLE+LEFT
)
[middle] => MIDDLE
[MIDDLE] => Array
(
[middle_ctrl] => CTRL+MIDDLE
[middle_alt] => ALT+MIDDLE
[middle_shift] => SHIFT+MIDDLE
[middle_double] => DOUBLE+MIDDLE
[middle_ctrl_alt] => ALT+CTRL+MIDDLE
[middle_ctrl_shift] => SHIFT+CTRL+MIDDLE
[middle_ctrl_double] => DOUBLE+CTRL+MIDDLE
[middle_alt_ctrl] => CTRL+ALT+MIDDLE
[middle_alt_shift] => SHIFT+ALT+MIDDLE
[middle_alt_double] => DOUBLE+ALT+MIDDLE
[middle_shift_ctrl] => CTRL+SHIFT+MIDDLE
[middle_shift_alt] => ALT+SHIFT+MIDDLE
[middle_shift_double] => DOUBLE+SHIFT+MIDDLE
[middle_double_ctrl] => CTRL+DOUBLE+MIDDLE
[middle_double_alt] => ALT+DOUBLE+MIDDLE
[middle_double_shift] => SHIFT+DOUBLE+MIDDLE
[middle_ctrl_alt_shift] => SHIFT+ALT+CTRL+MIDDLE
[middle_ctrl_alt_double] => DOUBLE+ALT+CTRL+MIDDLE
[middle_ctrl_shift_alt] => ALT+SHIFT+CTRL+MIDDLE
[middle_ctrl_shift_double] => DOUBLE+SHIFT+CTRL+MIDDLE
[middle_ctrl_double_alt] => ALT+DOUBLE+CTRL+MIDDLE
[middle_ctrl_double_shift] => SHIFT+DOUBLE+CTRL+MIDDLE
[middle_alt_ctrl_shift] => SHIFT+CTRL+ALT+MIDDLE
[middle_alt_ctrl_double] => DOUBLE+CTRL+ALT+MIDDLE
[middle_alt_shift_ctrl] => CTRL+SHIFT+ALT+MIDDLE
[middle_alt_shift_double] => DOUBLE+SHIFT+ALT+MIDDLE
[middle_alt_double_ctrl] => CTRL+DOUBLE+ALT+MIDDLE
[middle_alt_double_shift] => SHIFT+DOUBLE+ALT+MIDDLE
[middle_shift_ctrl_alt] => ALT+CTRL+SHIFT+MIDDLE
[middle_shift_ctrl_double] => DOUBLE+CTRL+SHIFT+MIDDLE
[middle_shift_alt_ctrl] => CTRL+ALT+SHIFT+MIDDLE
[middle_shift_alt_double] => DOUBLE+ALT+SHIFT+MIDDLE
[middle_shift_double_ctrl] => CTRL+DOUBLE+SHIFT+MIDDLE
[middle_shift_double_alt] => ALT+DOUBLE+SHIFT+MIDDLE
[middle_double_ctrl_alt] => ALT+CTRL+DOUBLE+MIDDLE
[middle_double_ctrl_shift] => SHIFT+CTRL+DOUBLE+MIDDLE
[middle_double_alt_ctrl] => CTRL+ALT+DOUBLE+MIDDLE
[middle_double_alt_shift] => SHIFT+ALT+DOUBLE+MIDDLE
[middle_double_shift_ctrl] => CTRL+SHIFT+DOUBLE+MIDDLE
[middle_double_shift_alt] => ALT+SHIFT+DOUBLE+MIDDLE
)
[right] => RIGHT
[RIGHT] => Array
(
[right_ctrl] => CTRL+RIGHT
[right_alt] => ALT+RIGHT
[right_shift] => SHIFT+RIGHT
[right_double] => DOUBLE+RIGHT
[right_ctrl_alt] => ALT+CTRL+RIGHT
[right_ctrl_shift] => SHIFT+CTRL+RIGHT
[right_ctrl_double] => DOUBLE+CTRL+RIGHT
[right_alt_ctrl] => CTRL+ALT+RIGHT
[right_alt_shift] => SHIFT+ALT+RIGHT
[right_alt_double] => DOUBLE+ALT+RIGHT
[right_shift_ctrl] => CTRL+SHIFT+RIGHT
[right_shift_alt] => ALT+SHIFT+RIGHT
[right_shift_double] => DOUBLE+SHIFT+RIGHT
[right_double_ctrl] => CTRL+DOUBLE+RIGHT
[right_double_alt] => ALT+DOUBLE+RIGHT
[right_double_shift] => SHIFT+DOUBLE+RIGHT
[right_ctrl_alt_shift] => SHIFT+ALT+CTRL+RIGHT
[right_ctrl_alt_double] => DOUBLE+ALT+CTRL+RIGHT
[right_ctrl_shift_alt] => ALT+SHIFT+CTRL+RIGHT
[right_ctrl_shift_double] => DOUBLE+SHIFT+CTRL+RIGHT
[right_ctrl_double_alt] => ALT+DOUBLE+CTRL+RIGHT
[right_ctrl_double_shift] => SHIFT+DOUBLE+CTRL+RIGHT
[right_alt_ctrl_shift] => SHIFT+CTRL+ALT+RIGHT
[right_alt_ctrl_double] => DOUBLE+CTRL+ALT+RIGHT
[right_alt_shift_ctrl] => CTRL+SHIFT+ALT+RIGHT
[right_alt_shift_double] => DOUBLE+SHIFT+ALT+RIGHT
[right_alt_double_ctrl] => CTRL+DOUBLE+ALT+RIGHT
[right_alt_double_shift] => SHIFT+DOUBLE+ALT+RIGHT
[right_shift_ctrl_alt] => ALT+CTRL+SHIFT+RIGHT
[right_shift_ctrl_double] => DOUBLE+CTRL+SHIFT+RIGHT
[right_shift_alt_ctrl] => CTRL+ALT+SHIFT+RIGHT
[right_shift_alt_double] => DOUBLE+ALT+SHIFT+RIGHT
[right_shift_double_ctrl] => CTRL+DOUBLE+SHIFT+RIGHT
[right_shift_double_alt] => ALT+DOUBLE+SHIFT+RIGHT
[right_double_ctrl_alt] => ALT+CTRL+DOUBLE+RIGHT
[right_double_ctrl_shift] => SHIFT+CTRL+DOUBLE+RIGHT
[right_double_alt_ctrl] => CTRL+ALT+DOUBLE+RIGHT
[right_double_alt_shift] => SHIFT+ALT+DOUBLE+RIGHT
[right_double_shift_ctrl] => CTRL+SHIFT+DOUBLE+RIGHT
[right_double_shift_alt] => ALT+SHIFT+DOUBLE+RIGHT
)
)