「メソッド」と呼ばれる配列があり、次のようになります。
[0] => Array (
[id] => WWAM
[title] => WWAM
[cost] => 4.35
)
[1] => Array (
[id] => CNQM
[title] => CNQM
[cost] => 5.21
)
[2] => Array (
[id] => CNAM
[title] => CNAM
[cost] => 6.58
)
私がやりたいのは、[コスト] マイナス (分) [コスト] になるように各 [コスト] を変更することです。言い換えれば、以下の各値は 4.35 ずつ減少します (WWAN の値は 0 になります)。これにはおそらくもっと良い方法がありますが、array_walk を試すことにしました。しかし、それは私にとってはうまくいきません。これが私が試したことです:
$lowestpricedoption = 100000;
foreach ($methods as $item) {
if ($item['cost'] < $lowestpricedoption) {
$lowestpricedoption = $item['cost'];
}
}
array_walk( $methods, 'subtractLowest', $lowestpricedoption );
function subtractLowest(&$item, $key, $lowestval)
{
$item['cost'] -= $lowestval;
}
なぜそれがうまくいかないのか知りたいのですが、もっとエレガントな方法もありがたいです。