Good questions. Before I start, let me fix one typo that I made in my sample function. you have iso_9000($answers) with a letter "s" at the end but then in the body of the function, I refer to $answer[] without the "s". That's wrong. They must be consistent.
And yes, Option #1 is by far the easiest way to go except that it puts the burdon on the user to answer every question even if you already know the right decision for them after the first question.
Your first question: How do I pass the answers to the function as an array? As Steve Martin would say, "First, get an array". How you do that is up to you. The easiest way for now is probably to ask your questions on the first page and then PUT them into an array in your PHP. For example, your HTML might look like this:
<input type=checkbox name=regchar value=1> Registered Charity
<input type=checkbox name=incorp value=1> Incorporated
Then your PHP could put them in an array like this:
$answer = array();
$answer[1] = $REQUEST['regchar'];
$answer[2] = $REQUEST['incorp'];
Then, you can simply call your functions like this:
if (iso_9000($answer)==1) { print "It looks like ISO 9000 is an option for you<br>"; }
else { print "You cannot use ISO 9000"; }
if (iso_5555($answer)==1) { print "It looks like ISO 5555 is an option for you<br>"; }
else { print "You cannot use ISO 5555"; }
Here's the reason you want $answer to be an array. As time goes on, you will inevitably include more questions and more decisions. If you were to pass all the answers like this:
iso_9000($answer1,$answer2,$answer3,$answer4,$answer5)
Then whenever you add a new question, you would need to make changes to every function which invites mistakes. When you pass it as an array, it's possible that you're passing more answers than that function needs. (For example, let's say that ISO 7777 is as simple as this: If $answer1=="y" then you can use it and if it's no, then you can't. If ISO 7777 were that simple, then you really only need to pass one answer but I'm suggesting that you pass the whole array anyway - it makes reading the code easier and it's easier to maintain.)
$score++; is just a way of adding 1 to the current value of $score. It's the same as $score = $score + 1; I was just using it as an example of how you might add or subtract points from a score.
The beauty of doing this with functions is that you can make extremely complicate rule sets. For example, Maybe ISO 9000 is unacceptable if the company is a charity UNLESS (there are 20 employees AND they are in Texas) BUT NOT if the charity is for a medical condition. Or whatever. You can write all the if statements that you want and then simply return a 1 or a 0.