This is simply down to the way PHP and ASP.NET read the request. If ASP.NET encounters the same form field name multiple times it will append the values. PHP, on the other hand, will overwrite the previous value with the current one, so you'll only get the last value in $_GET or $_POST.
You have two options.
The first is to simply tell PHP to treat the fields in question as an array. This is the easiest approach because all you have to do is put square brackets at the end of the field name.
<input name="field[]" value="1" />
<input name="field[]" value="2" />
<input name="field[]" value="3" />
You can give each element in the array a particular key if you want too.
<input name="field[foo]" value="1" />
<input name="field[bar]" value="2" />
<input name="field[baz]" value="3" />
The other approach is to read the raw input the the script and process it yourself.
$postdata = file_get_contents("php://input");
This method is a lot more complex, as you have to parse all the input data yourself. It also has limitations.
For that reason I'd recommend you use the first method.