Hi the best way I think is to give different name for all inpunt like 'new_screen_price' 'old_screen_price'
if your form is generate by js you can do this if isn't put direct in html you have
...
after you take your single value in php like
$newScreen = [];
$newScreen['name'] = 'new screen';
$newScreen['price'] = $_POST['new_screen_price'];
put yours array product in one
$products = [];
$products['newScreen'] = $newScreen;
you are ready for you request i just do for two params price and name but oviously you need for all
foreach($products as $prod){
$statement = $db->prepare("INSERT INTO invoice (orderNo,customerNo,productName,price,quantity,amount,createDate,createTime,createBy) VALUES (?,?,:name,:price,...)");
$statement->bindParam(':name', $prod->name);
$statement->bindParam(':price', $prod->price);
$statement->execute();
}
good day i hope this can help you