我有一个问题,如下。
我的目标是替换所有水果的值,使价格提高 5%:
// precios originales
$precios = array (
"frutas" => array (
"manzanas" => 15,
"peras" => 5,
"naranjas" => 3,
),
"verduras" => array (
"clave" => 15,
"clave2" => 5,
"clave3" => 3,
)
);
// Los precios de frutas suben 5%
foreach ($precios['frutas'] as $clave => $valor) {
$nuevovalor = $valor*5/100+$valor;
$valor = ceil($nuevovalor);
}
// los precios de las verduras suben un 3%
foreach ($precios['verduras'] as $clave => $valor) {
$nuevovalor = $valor*3/100+$valor;
$valor = ceil($nuevovalor);
}
我的想法是使用该功能array_replace
,但到目前为止,我似乎没有做任何事情来用新价格替换值,如果新价格很好地解决了该功能,您的想法将受到欢迎,问候。
你变得很复杂。不是用 a 循环遍历它,而是用 a
foreach
循环遍历数组,for
您可以索引数组以操作其数据。您可以这样做,但您必须声明一个增量变量以
foreach
用作索引。也不要使用变量名作为索引,因为您将无法动态地遍历它们:我更喜欢自己修改数组而不是使用
array_replace
. 但是,我给你留下了两个解决方案。试试 IDEONE注释:
=
这是“传统”意义上的分配方式:右边的=
分配给左边的;而它=>
以相反的方式工作并用于“for”循环。另一方面,将一个值乘以一个十进制值会得到百分比,其中 0.05 等于 5%,1 等于 100%。当两个值相加时,我有 105%,这是相同的:增加 5%。您可以利用 PHP 5.5 的优势并
array_map
使用lambda。代码非常简化:甚至代码的第二部分也可以进一步简化,以防除了水果和蔬菜之外还有其他类型的元素及其价格: