无法将键=>值分配给Foreach数组

时间:2018-12-31 16:12:01

标签: php arrays laravel-5

我有以下国家/地区的数组($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数组组合在一起,但没有成功

2 个答案:

答案 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是您需要的数组。