在$ _SESSION具有以下数据数组。

Array (
[totalprice] => 954
[cart] => Array (
      [115] => Array (
      [name] => MÅNESKINN
      [price] => 268.00
      [count] => 1 )
[80] => Array (
      [name] => DELFINLEK  
      [price] => 268.00
      [count] => 1 )
[68] => Array (
      [name] => OPPDAGELSEN
      [price] => 418.00
      [count] => 1 ) )
[shipping] => 65 ) 

现在我需要比较价格,并找到最高价,以确定用下面的代码的运费。

...
$shippingprice = 25.0;    
if ( $priceincart > 268 ){
   $shippingprice = 65.0;
}
...
$_SESSION['shipping'] = $shippingprice;

我如何才能找到从阵列中的最高价格是多少?

预先感谢。

有帮助吗?

解决方案

试试这个简单的算法:

$max = 0;
foreach ($_SESSION['cart'] as $item) {
    if ($item['price'] > $max) {
        $max = $item['price'];
    }
}

它的迭代车项目并测试该项目的价格比目前的最高大,如果它更大更新的最大值。

其他提示

这应该工作,尽管它假定一个PHP版本> = 5.3。

$max_price = array_reduce($array['cart'], function($acc, $in) { 
    return max($acc, $in['price']); 
}, 0) or $max_price = 0;

给定的起始最小的代价(0零),array_reduce将调用回调函数在$阵列[“购物”](其中每个元素也是一个数组)中的每个元素,然后调用函数将返回的最大$ ACC或$在[“价格”。该最大值将随后在给回调函数传递(如$ ACC),下一次它被称为

在该array_reduce()的情况下返回NULL,$ MAX_PRICE被设置为零。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top