<?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 ) )