我想将所有数组元素乘以5,但我的代码给出输出55555.Output应该是5 10 15 20 25.如何处理?
<?php
function multi($ar,$multiplier){
$i=0;
while($i<count($ar)){
$ar[$i]*=$multiplier;
echo $ar[0];
$i++;
}
}
$arr = array(1,2,3,4,5);
multi($arr,5);
?>
答案 0 :(得分:0)
在这里,这将输出你想要的。它也存储在另一个名为outarr
的数组中,您可以进一步使用它。
<?php
$arr = array(1,2,3,4,5);
$outarr = [];
foreach($arr as $piece){
$output = $piece * 5;
array_push($outarr,$output);
echo $output."<br>";
}
?>
如果您想要它的功能,请:
<?php
function multi($array,$times = 5){
foreach($array as $piece){
$output = $piece * $times;
array_push($outarr,$output);
//echo $output."<br>";
}
return $outarr;
}
$arr = array(1,2,3,4,5);
multi($array);
var_dump(multi($array));
?>
答案 1 :(得分:0)
试试这个
function multi($ar,$multiplier){
$i=0;
while($i<count($ar)){
$ar[$i]*=$multiplier;
echo $ar[$i];
$i++;
}
}
$arr = array(1,2,3,4,5);
multi($arr,5);
答案 2 :(得分:0)
使用&amp;通过引用转换参数,
请参阅demo
<?php
function multi(&$ar,$multiplier){
$i=0;
while($i<count($ar)){
$ar[$i]*=$multiplier;
//echo $ar[0];
$i++;
}
}
$arr = array(1,2,3,4,5);
multi($arr,5);
var_dump($arr);
?>
答案 3 :(得分:0)
最好的选择是使用简单的array_map()
。下面的代码段会向您展示如何Quick-Test it Here。
<?php
// SAY YOU HAVE AN ARRAY: [1, 2, 3, 4, 5]
// AND YOU WISH TO HAVE: [5, 10, 15, 20, 25]
// YOU COULD SIMPLY USE array_map() TO DO JUST THAT...
$arrNumbers = array(1, 2, 3, 4, 5);
$arrResult = array_map( function($value){
return 5*$value;
}, $arrNumbers);
var_dump($arrResult);
// YIELDS::
array (size=5)
0 => int 5
1 => int 10
2 => int 15
3 => int 20
4 => int 25