$ _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;
如何从阵列中找到最高价?
提前致谢。
答案 0 :(得分:1)
尝试这个简单的算法:
$max = 0;
foreach ($_SESSION['cart'] as $item) {
if ($item['price'] > $max) {
$max = $item['price'];
}
}
它迭代购物车商品并测试商品的价格是否大于当前最高价格,如果价格更大则更新最大价格。
答案 1 :(得分:0)
这应该有效,尽管它假定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将在$ array ['cart']的每个元素处调用回调函数(其中每个元素也是一个数组),然后被调用的函数将返回最大值$ acc或$ in ['price']。然后,这个最大值将在下次调用时传递给回调函数($ acc)。
如果array_reduce()返回NULL,则$ max_price设置为零。