If you are trying to get a listing of all your items with a note whether selected or not, just change your form names a bit (If I understand what you are looking for...):
<?php
$data[] = array('ProductID'=>123,"Quantity"=>1,"Price"=>"2.00");
$data[] = array('ProductID'=>234,"Quantity"=>2,"Price"=>"1.50");
$data[] = array('ProductID'=>345,"Quantity"=>1,"Price"=>"4.59");
$data[] = array('ProductID'=>456,"Quantity"=>4,"Price"=>"1.99");
foreach($data as $row){ ?>
<tr>
<td><input type="checkbox" name="product[<?php echo $row['ProductID'];?>][select]" /></td>
<td><input type="text" value="<?php echo $row['Quantity']; ?>" name="product[<?php echo $row['ProductID'];?>][qty]" /></td>
<td><input type="text" value="<?php echo $row['Price']; ?>" name="product[<?php echo $row['ProductID'];?>][price]" /></td>
</tr>
<?php }
Gives you:
// Just loop through the [product] array looking for the 'select' = 'on'
Array
(
[product] => Array
(
[123] => Array
(
[qty] => 1
[price] => 2.00
)
[234] => Array
(
[select] => on
[qty] => 2
[price] => 1.50
)
[345] => Array
(
[qty] => 1
[price] => 4.59
)
[456] => Array
(
[qty] => 4
[price] => 1.99
)
)
)
To get the selected items:
if(!empty($_POST['product'])) {
foreach($_POST['product'] as $row) {
if(!empty($row['select'])) {
print_r($row);
}
}
}