我试图在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
}
}
答案 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);