题
在$ _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被设置为零。
不隶属于 StackOverflow