質問
の$ _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