Hm, no I haven't seen any. I learnt all this stuff myself and don't have any demos ready. But I will try to explain it:
1. Create an array in the editor. Add an instance variable to it for each value you wish to store (attack, defence, etc.)
2. On start of the game, destroy array (just to keep it clean)
3. Condition 'on character created' > create object 'array'. Set value of array's instance variable 'id' (which you also include when creating the variables for the array) to 'character.uid'. Then set all other variables to the desired values.
4. Whenever something affects 'character', pick the corresponding array by adding the condition 'array.id = character.uid'. Now alter the values of the array's variables asthough it was the character.
This is a very simple way to do things that still allows more flexibility than storing the values directly on the character. If you think that you will need more control over the information, then yes also use the array's cells.
I don't have time to fully explain my methods for that right now sorry, but essentially you just use 'push' to add a string value (say 'attack') on the X axis, then values on the Y axis (starting from 1, because 0 will be your string). Then you can do things like run loops for 'array.height' times, using local variables as counters to get the value for each cell under a string: array.At(array.indexOf("attack"),counter))
That method is actually quite easy to use, just there is a lot of possibility so deciding the right ways of indexing and retrieving the information for your game will likely take some time and thought. Hope that helps!
EDIT: Also in case you haven't noticed, I'm not a fan of using a single array for all the characters. I really can't see any reason to do it that way and many reasons why not to. So unless you have a very specific reason for doing so (and if you do I'd like to know why out of curiosity :) ), the main thing I suggest is to store values for each character in their own object.