質問

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