There are ways to do it but you may be over complicating things a bit.
how many choices will there be? a few, dozens, thousands? how many levels of depth do you want to keep? last one, several, lots?
Since you know the list actions, if that list is static for the level there is no need to store it as the first element of the array.
as actions are performed just add the action to the end of the array using a single dimension. you don't have to sort it, the first element is the first action...
you will have a record of what happened and that can be stored in others ways for history.
I would be happy to show an example or two if you want to see more complicated sorting if you want.