我有以下国家/地区的数组($countryIso = array("US","BR","CL");)
,我的想法是创建一个新的数组以显示以下架构:
('US',200)
我试图创建以下结构:
$countryIso = array("US","BR","CL");
foreach ($countryIso as $isocode) {
$productcalc[] = "'" . strtoupper($isocode) . "'" . ',' . number_format($this->product->calculate($product = $product, $countryIso = $isocode), 0, '.', ',');
}
尽管我可以创建类似的格式,但我意识到数组的格式不正确。当我检查输出时,将显示以下内容:
Array([0] =>'US',200
键是[0],而不是US。
关于如何使用
创建键=>值结果的任何想法Array([US] => 200
在我的代码中使用foreach结构?我尝试使用array_combine之类的变量将countryIso数组与productcalc数组组合在一起,但没有成功
答案 0 :(得分:1)
您可以保留自己的iso数组,而只需combine个数组即可:
<?php
$iso = ['US', 'BR', 'CL'];
$values = [200, 300, 400]; # obviously populate this with your actual values
$newArray = array_combine($iso, $values); # array_combine($keys, $values)
echo '<pre>'. print_r($newArray, 1) .'</pre>';
编辑:如果值是通过iso值获得的,则需要进一步考虑
<?php
$iso = ['US', 'BR', 'CL'];
$newArray = [];
foreach ($iso as $val)
{
$newArray[$val] = getValueFromIso($val); # not a real function - just an example
}
答案 1 :(得分:0)
只需使用正确的值定义数组即可。
$countryIso =[
"US" => 200,
"BR" => 300,
"CL" => 400,
];
如果需要计算值,请使用:
$countryIso = array("US","BR","CL");
foreach ($countryIso as $isocode) {
$productcalc[strtoupper($isocode)] = number_format($this->product->calculate($product = $product, $countryIso = $isocode), 0, '.', ',');
}
现在$ productcalc是您需要的数组。