PHP foreach 数组检查库存是否大于
PHP foreach array check if stock greater than
正在尝试检查库存是否大于。当所有不同的商品都大于 10 个库存时,我想显示一些文本“请求的数量不可用”而不是表单提交。这可能吗?
问题是我使用 SESSION 从购物车中的一件商品中获得了 15 件商品。如果一件商品的数量 15 大于库存 10,则库存总数为 10,则显示“请求的数量不可用”,因此不要提交。但是我从少于 10 个库存的一件商品中更改了 10 数量的值。显示“您的订单已下达。”
$array = array('0' => array('qty' => 15), '1' => array('qty' => 5), '2' => array('qty' => 1));
foreach ($array as $key => $item) {
if ($item['qty'] !== 0) {
if ($item['qty'] <= 10) {
$it = 'Your order has been successfully processed';
} else {
$it = 'The requested qty is not available';
}
} else {
$it = 'Some of products are out of stock';
}
}
echo $it;
例如(1)
一件商品数量 10
两件商品数量 5
第三件商品数量 1
=如果可能的话提交表格(数量小于等于库存10),然后显示“您的订单已下达”。
例如(2)
单件数量 15
两件商品数量 5
第三件商品数量 1
=如果不提交(数量大于库存),则显示“请求的数量不可用。
例如(3)
一件商品数量 9
两件商品数量 4
第三件商品数量 0
=如果不提交,则显示“部分产品缺货”。
foreach ($array as $key => $item) {
if($item['qty'] !== 0) {
if($item['qty'] <= 10)
{
$it = 'Your order has been successfully processed';
}
else
{
$it = 'The requested qty is not available';
break;
}
}
else
{
$it = 'Some of products are out of stock';
break;
}
}
echo $it;
如果顺序出现问题,您可以简单地使用 break; 来停止您的 foreach。
只是一个想法:你也可以使用一个布尔值,如果一切正常然后处理订单,如果没有给出特定的错误信息。取决于您接下来的步骤。
也许这对您也有帮助:
$array1 =Array ('0' => Array('qty'=>10),'1'=>Array('qty'=>5),'2'=>Array('qty'=>1));
$array2 =Array ('0' => Array('qty'=>15),'1'=>Array('qty'=>5),'2'=>Array('qty'=>1));
$array3 =Array ('0' => Array('qty'=>9),'1'=>Array('qty'=>4),'2'=>Array('qty'=>0));
function handleBasket($items)
{
$quantities = array_column($items, 'qty');
foreach($quantities as $quantity)
{
if($quantity >10){
return 'The requested qty is not available';
}
if($quantity ===0){
return 'Some of products are out of stock';
}
}
return 'Your order has been successfully processed';
}
echo handleBasket($array1);
echo handleBasket($array2);
echo handleBasket($array3);
输出:
Your order has been successfully processed
The requested qty is not available
Some of products are out of stock
正在尝试检查库存是否大于。当所有不同的商品都大于 10 个库存时,我想显示一些文本“请求的数量不可用”而不是表单提交。这可能吗?
问题是我使用 SESSION 从购物车中的一件商品中获得了 15 件商品。如果一件商品的数量 15 大于库存 10,则库存总数为 10,则显示“请求的数量不可用”,因此不要提交。但是我从少于 10 个库存的一件商品中更改了 10 数量的值。显示“您的订单已下达。”
$array = array('0' => array('qty' => 15), '1' => array('qty' => 5), '2' => array('qty' => 1));
foreach ($array as $key => $item) {
if ($item['qty'] !== 0) {
if ($item['qty'] <= 10) {
$it = 'Your order has been successfully processed';
} else {
$it = 'The requested qty is not available';
}
} else {
$it = 'Some of products are out of stock';
}
}
echo $it;
例如(1)
一件商品数量 10
两件商品数量 5
第三件商品数量 1
=如果可能的话提交表格(数量小于等于库存10),然后显示“您的订单已下达”。
例如(2)
单件数量 15
两件商品数量 5
第三件商品数量 1
=如果不提交(数量大于库存),则显示“请求的数量不可用。
例如(3)
一件商品数量 9
两件商品数量 4
第三件商品数量 0
=如果不提交,则显示“部分产品缺货”。
foreach ($array as $key => $item) {
if($item['qty'] !== 0) {
if($item['qty'] <= 10)
{
$it = 'Your order has been successfully processed';
}
else
{
$it = 'The requested qty is not available';
break;
}
}
else
{
$it = 'Some of products are out of stock';
break;
}
}
echo $it;
如果顺序出现问题,您可以简单地使用 break; 来停止您的 foreach。
只是一个想法:你也可以使用一个布尔值,如果一切正常然后处理订单,如果没有给出特定的错误信息。取决于您接下来的步骤。
也许这对您也有帮助:
$array1 =Array ('0' => Array('qty'=>10),'1'=>Array('qty'=>5),'2'=>Array('qty'=>1));
$array2 =Array ('0' => Array('qty'=>15),'1'=>Array('qty'=>5),'2'=>Array('qty'=>1));
$array3 =Array ('0' => Array('qty'=>9),'1'=>Array('qty'=>4),'2'=>Array('qty'=>0));
function handleBasket($items)
{
$quantities = array_column($items, 'qty');
foreach($quantities as $quantity)
{
if($quantity >10){
return 'The requested qty is not available';
}
if($quantity ===0){
return 'Some of products are out of stock';
}
}
return 'Your order has been successfully processed';
}
echo handleBasket($array1);
echo handleBasket($array2);
echo handleBasket($array3);
输出:
Your order has been successfully processed
The requested qty is not available
Some of products are out of stock