使用array_map函数将数组中的每个值相乘

时间:2018-08-22 22:22:15

标签: php arrays array-map

我正在尝试将array_module_rate数组中的每个值相乘。

结果应为:

  • $array_module_rate[0] = 25
  • $array_module_rate[1] = 15
  • $array_module_rate[2] = 20

我该怎么做?

$array_module_rate = array(
  '5',
  '3',
  '4'
}

$global_course = 5;

array_map(function($cal) {
  return $cal * $global_course;
}, $array_module_rate);

3 个答案:

答案 0 :(得分:0)

$array_module_rate = array(
  '5',
  '3',
  '4'
}

$global_course = 5;

foreach($array_module_rate as $key=>$value){
   $array_module_rate[$key]=$global_course* $value;
}

您可以使用foreach循环

答案 1 :(得分:0)

使用闭包在array_map回调中发送其他参数。     

$array_module_rate = array(
  '5',
  '3',
  '4'
);

$global_course = 5;

array_map(function($cal) use($global_course) {
  return $cal * $global_course;
}, $array_module_rate);

答案 2 :(得分:0)

如果要修改原始数组,可以使用array_walk代替array_map。它按引用获取数组,因此,如果您也按引用将array元素传递给回调,则可以直接对其进行修改。

array_walk($array_module_rate, function(&$cal) use ($global_course) {
   $cal *= $global_course;
});

请注意,您需要使用$global_courseuse传递给回调,否则需要it won't be available in that scope