[英]PHP - how count percent of each value in array
在 PHP 中,我有一个数组:
$a = array(10, 15, 20, 25, 30);
我想为数组$a
每个元素添加 5%,使其看起来像这样:
$a = array(10.5, 15.75, 21, 26.25, 31.5);
我不想使用foreach
。
使用array_map()
:
$a = array(10, 15, 20, 25, 30);
$a = array_map(function($value) { return $value * 1.05; }, $a);
给出: array(10.5, 15.75, 21, 26.25, 31.5);
试试这个
<?php
$a = array(10, 15, 20, 25, 30);;
$output = array_map(function($val) { return $val + ($val*5/100); }, $a);
print_r($output);
?>
输出 :-
Array
(
[0] => 10.5
[1] => 15.75
[2] => 21
[3] => 26.25
[4] => 31.5
)
这是您的自定义功能,
$arr = array_map(function($i){
return $i+($i*0.05);
}, $arr);
print_r($arr);
这是工作代码。
array_map — 将回调应用于给定数组的元素
function myfunction($num)
{
return($num + ($num * .05));
}
$a=array(10, 15, 20, 25, 30);
print_r(array_map("myfunction",$a));
输出:
Array ( [0] => 10.5 [1] => 15.75 [2] => 21 [3] => 26.25 [4] => 31.5 )
使用php的Array_map函数
$a = array(10, 15, 20, 25, 30);
$arrReturn = array_map("increment", $a);
print_r($arrReturn);
function increment($n){
$return = $n + ($n * .5);
return $return;
}
当然,语言构造可用于循环数组,并且正如其他几个答案所证明的那样, array_map()
可以完成这项工作,但是当您想将用户函数应用于数组中的每个元素时,这就是array_walk()
是专为。 这些值在迭代时被“通过引用修改”,而不是创建一个全新的数组,然后用新的返回数组覆盖旧数据。
使用乘法赋值运算符将 5% 提升应用于遇到的每个值。
代码:(演示)
function fivePercentIncrease(&$value) {
$value *= 1.05;
}
$a = [10, 15, 20, 25, 30];
array_walk($a, 'fivePercentIncrease');
var_export($a);
或通过匿名函数:(演示)
$a = [10, 15, 20, 25, 30];
array_walk($a, function(&$value) { $value *= 1.05; });
var_export($a);
或者通过匿名函数使用 PHP7.4 的箭头函数语法:( Demo )
$a = [10, 15, 20, 25, 30];
array_walk($a, fn(&$value) => $value *= 1.05);
var_export($a);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.