i had the same question and tried devin's advice. it is working well. plus you need to check if $number is an array, in case no item selected, in_array() will give a data type error.
<body>
<form method="post">
<p>
<select name="numbers[]" size="5" multiple>
<option <?php if ((is_array($numbers))&&(in_array("one", $numbers))) { ?> selected <?php } ?>>one</option>
<option <?php if ((is_array($numbers))&&(in_array("two", $numbers))) { ?> selected <?php } ?>>two</option>
<option <?php if ((is_array($numbers))&&(in_array("three", $numbers))) { ?> selected <?php } ?>>three</option>
<option <?php if ((is_array($numbers))&&(in_array("four", $numbers))) { ?> selected <?php } ?>>four</option>
<option <?php if ((is_array($numbers))&&(in_array("five", $numbers))) { ?> selected <?php } ?>>five</option>
</select>
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>