检查是否且仅当数组包含特定对象时

时间:2016-09-12 06:24:36

标签: php

仅当$use_paypal数组包含一个或多个TRUE属性设置为$products的对象时,我才需要将term_id设置为36

如果$products包含一个或多个 36项,则此代码有效,但如果$use_paypal包含其他内容,它也会将TRUE设置为$products项目

$use_paypal = FALSE;
foreach ($products as $product) {
  // The values could be 30, 31, 32, 33, 34, 35, 36
  if ($product->term_id == 36) {
    $use_paypal = TRUE;
  }
}
return $use_paypal;

2 个答案:

答案 0 :(得分:3)

为了确保您的所有产品都apparel_id = 36我默认将$use_paypal设置为true,如果任何产品不匹配,请将其切换为false。看一下这个例子:

foreach ($products as $product) {
    if ($product->term_id != 36) {
        return false;
    }
}
return true;

让你明白会发生什么。

  • 我们将$use_paypal设置为true
  • 我们遍历所有产品
  • 对于每种产品,我们会检查$product->term_id是否不是36
  • 如果term_id不是36,我们会将$use_paypal设为false

答案 1 :(得分:0)

假设您的购物车商品列表是一个数组,就像这样,

$cart_items[] = $product (object);
$cart_items[] = $product (object);

您可以使用下面的功能来完成您的工作。

function isPaypal($cart_items){
    foreach( $cart_items as $product ){
        if ( $product->term_id != 36 ){
            return FALSE;
        }
    }
    return TRUE;
}