Opencart产品阵列

时间:2016-05-18 20:53:16

标签: php opencart

我试图在opencart中操作一些数据但是遇到了一些麻烦。如果所有数字都相同,我将如何为$ product ['price']的每个键检查此数组以获得最小的现有数字和true / false布尔值。我试图用foreach循环来做这个,但无法弄清楚要做什么。这是我想要的粗略概念。

foreach ($this->cart->getProducts() as $product) {

if($product['price'] == false){ //not the same
Smallest number of $product['price']
}else{
do something else
}

}

1 个答案:

答案 0 :(得分:0)

根据您作为输出所需的内容,针对该问题有几种解决方案。以下是其中两个:

解决方案1 ​​

获得最低价格(数字):

$prices = array();
foreach ($this->cart->getProducts() as $product) {
  array_push($prices, $product['price']);
}
return min($prices); // return or do w/e with the lowest price

检查所有值是否相同(True如果全部相同,False如果不相同):

return count(array_unique($prices) == 1);

我们在这里做的是计算唯一条目的数量(array_unique删除所有重复项)并检查它是否等于1(=所有都相同)。

解决方案2

以最低价格获得产品(对象):

$prices = array(); // necessary for the "all equals check"
foreach($this->cart->getProducts() as $product) {
  if(!isset($cheapestProduct) || $cheapestProduct['price'] > $product['price']) {
    $cheapestProduct = $product;
  }
  array_push($prices, $product['price']); // necessary for the "all equals check"
}
return $cheapestProduct;

检查所有值是否相同(如果您不需要它,可以删除上面的两个注释行):

return count(array_unique($prices) == 1);