What's confusing you is that you're thinking of arrays and variables as different things. An array is a variable, it's just a specific type of variable which can contain multiple values, instead of just one value like most other types of variables. So, instead of using seven different integer variables to keep track of seven different numbers, you can use one array variable to keep track of all seven numbers.
If it helps, the classic way of describing arrays is thinking of them as being like mail rooms or post offices. The name of the array variable tells you which mail room you're in, the index (the number inside the brackets which immediately follows the variable name; e.g. $arrayName[index]) tells you which p.o. box in that mail room, and inside that particular p.o. box is a value.
So, for example, instead of doing:
<<set $flirt_A += 1>>
to add one to the first flirt value, you would do:
<<set $flirt_set[0] += 1>>
and that would add one to the first element in the $flirt_set array. So you can change the values in an array the same way you could with any other variable.
Or, for another example, instead of doing:
<<if $flirt_C > 5>>
you would do:
<<if $flirt_set[2] > 5>>
and that would check to see if the value of the third element (because elements 0 and 1 are the first and second elements) is greater than five.
See, the number inside the brackets lets the code know which value in the array to use, and then it checks just that one value in the <<if>> macro, the same way it checks any other variable. In other words, an array works like a whole collection of variables, all wrapped into one variable.
Because of that, there's no need to have both $flirt_A through $flirt_G and $flirt_set; instead you would just use $flirt_set, since it would be able to act like all of those variables, but also have some additional functionality because it's stored as an array.
Now, let's say you have this:
<<set $NumText = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]>>
The above array holds 10 strings. You could use that array if you wanted to convert a number from 0 to 9 into its equivalent word. For example:
<<set _someValue = 5>>
You have <<print $NumText[_someValue]>> moves left.
The above would display, "You have five moves left."
As long as $NumText's index is something in the 0 through 9 range, then that array will return the word equivalent of that index, because of the data we put in that array.
Besides modifying the data in an array, you can also add or remove values to and from arrays. Here are a number of examples:
/* This creates an empty array. */
<<set $NameList = []>>
/* This adds two values to the end of the array. */
<<set $NameList.push("Bob", "Charley")>>
/* This adds one value to the front of the array. */
<<set $NameList.unshift("Andy")>>
/* Currently this will display "Andy, Bob, Charley". */
$NameList
/* This will display each name in the array in the "index: name" format. */
<<for _i = 0; _i < $nameList.length; _i++>>
_i: $nameList[_i]
<</for>>
/* This changes "Charley" to "Chuck" */
<<set $NameList[2] = "Chuck">>
/* This moves the first name in the $NameList array to the $FirstName variable. */
<<set $FirstName = $NameList.shift()>>
/* Currently this will display "Bob, Chuck". */
$NameList
/* This moves the last name in the $NameList array to the $LastName variable. */
<<set $LastName = $NameList.pop()>>
/* Currently this will display "Bob". */
$NameList
Because of this, array variables can be quite useful if you need to make lists of an unknown number of values, if you want to have a bunch of values in a certain order, and/or if you have a list of values you need to display.
Hopefully that clears things up. Feel free to ask if you have any other questions. :-)