Php 替换数组nvp中的值
我一直在尝试替换数组中的值 打印此数组时,我会将其命名为$currencesPhp 替换数组nvp中的值,php,Php,我一直在尝试替换数组中的值 打印此数组时,我会将其命名为$currences Array ( [0] => Array ( [currencylabel] => USA, Dollars [currencycode] => USD [currencysymbol] => $ [curid] => 1 [curname] => curname1 [check_
Array
(
[0] => Array
(
[currencylabel] => USA, Dollars
[currencycode] => USD
[currencysymbol] => $
[curid] => 1
[curname] => curname1
[check_value] =>
[curvalue] => 0
[conversionrate] => 1
[is_basecurrency] => 1
)
[1] => Array
(
[currencylabel] => India, Rupees
[currencycode] => INR
[currencysymbol] => ₨
[curid] => 2
[curname] => curname2
[check_value] =>
[curvalue] => 0
[conversionrate] => 50
[is_basecurrency] =>
)
[2] => Array
(
[currencylabel] => Zimbabwe Dollars
[currencycode] => ZWD
[currencysymbol] => Z$
[curid] => 3
[curname] => curname3
[check_value] =>
[curvalue] => 0
[conversionrate] => 22
[is_basecurrency] =>
)
)
这里我有一个$conversionRate,我需要将数组$currences[0]->array->[conversionRate]中的值除以它,并将其替换到数组中的相同位置。
对于[1]->Array->[conversionrate]等,也进行相同的操作。。
我目前的做法如下
$conversionRate = 50;
foreach ($currencies as $key => $val) {
$key['conversionrate'] = $key['conversionrate'] / $conversionRate;
if($key['conversionrate'] == 1) {
$key['is_basecurrency'] = 1;
} else {
$key['is_basecurrency'] = '';
}
}
print_r($key);
die;
目前这不起作用,请帮助$key是数组的索引标识符,$val包含数组值 所以像这样使用
$conversionRate = 4;
foreach ($currencies as $key => $val) {
$val['conversionrate'] = $val['conversionrate'] / $conversionRate;
if($val['conversionrate'] == 1) {
$val['is_basecurrency'] = 1;
} else {
$val['is_basecurrency'] = '';
}
}
print_r($val);
die;
您的循环完全错误,没有$key['conversionrate',],它是$val['conversionrate']。实际上,似乎没有理由使用$key变量,您可以使用
foreach ($currencies as &$val)
另外,您可能希望打印r($Currences),而不是$key如果不将浮点数字与==to 1进行比较,则可能由于舍入错误而无法工作 您混淆了键和值,需要使用&$val才能更改数组
$conversionRate = 4;
foreach ($currencies as $key => &$val) {
if($val['conversionrate'] == $conversionRate) {
$val['is_basecurrency'] = 1;
} else {
$val['is_basecurrency'] = '';
}
$val['conversionrate'] = $val['conversionrate'] / $conversionRate;
}
unset($val);
print_r($currencies);
die;
它是在第一个行中的FEACH循环中出现错误时…为什么它被标记为“代码> java、C++、c<代码>?需要是一个大的词,也可以做$货币[$KE]不,它给了我最后一套值[CurrnyLabel] = >津巴布韦元[CurrnyYCOD] = > ZWD[CurryCyMys]=Z$[CurID]=>3[curname]=>curname3[check\u value]=>0[conversionrate]=>22[is\u basecurrency]=>其余数组元素已关闭..我无法得到您想要的结果。津巴布韦元是你的基础货币吗?您是否将
&
添加到了foreach($key=>&$val的货币)
?谢谢Adder,这就是我要找的。