我试图创建一个PHP函数,它将数组的值/内容乘以给定的参数。
修改此函数,以便您可以将另一个参数传递给此函数。 该函数应该通过这个附加参数乘以数组中的每个值 (在函数内部调用这个额外的参数' factor')。 比如说$ A = array(2,4,10,16)。当你说
$B = multiply($A, 5);
var_dump($B);
this should dump B which contains [10, 20, 50, 80 ]
到目前为止,这是我的代码:
$A = array(2, 4, 10, 16);
function multiply($array, $factor){
foreach ($array as $key => $value) {
echo $value = $value * $factor;
}
}
$B = multiply($A, 6);
var_dump($B);
有什么想法吗?谢谢!
答案 0 :(得分:5)
您的功能不正确,必须返回该数组,不回显某些值。
function multiply($array, $factor)
{
foreach ($array as $key => $value)
{
$array[$key]=$value*$factor;
}
return $array;
}
休息很好。
<强> Fiddle 强>
您甚至可以使用 array_map
执行此操作$A = array(2, 4, 10, 16);
print_r(array_map(function($number){return $number * 6;}, $A));
<强> Fiddle 强>
答案 1 :(得分:2)
一个更简单的解决方案,您不必自己迭代数组,而是使用php本机函数(和闭包):
function multiply($array, $factor) {
return array_map(function ($x) {return $x * $factor}, $array);
}
答案 2 :(得分:0)
$A = array(2, 4, 10, 16);
function multiply($array, $factor){
foreach ($array as $key => $value) {
$val[]=$value*$factor;
}
return $val;
}
$B = multiply($A, 6);
var_dump($B);
答案 3 :(得分:0)
$myArray = [2, 3, 5];
$factor = 3;
array_walk($myArray, function(&$v) use($factor) {$v *= $factor;});
// $myArray = [6, 9, 15];
或者像这样,如果没有$ factor变量需要
array_walk($myArray, function(&$v) {$v *= 3;});