如何在 PHP 中通过引用传递数组元素?
How to pass array element by reference in PHP?
我想将我所有的数组元素乘以 5,但是我的代码给出的输出 55555.Output 应该是 5 10 15 20 25.How 来处理这个?
<?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);
?>
在这里,这将输出你想要的。它还存储在另一个名为 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));
?>
试试这个
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);
使用 & 通过引用传递参数,
查看 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);
?>
最好的选择是使用简单的 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
我想将我所有的数组元素乘以 5,但是我的代码给出的输出 55555.Output 应该是 5 10 15 20 25.How 来处理这个?
<?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);
?>
在这里,这将输出你想要的。它还存储在另一个名为 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));
?>
试试这个
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);
使用 & 通过引用传递参数,
查看 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);
?>
最好的选择是使用简单的 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