PHP将数组中的每个值乘以一个额外的参数

时间:2015-07-02 05:24:20

标签: php html css

我试图创建一个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);

有什么想法吗?谢谢!

4 个答案:

答案 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;});