在循环中为关联数组赋值


Assign values to an associated array in a loop

我有一个困难的时间创建一个相关的数组和分配值的关键。我有两个数组(tech_pay和tech_scans),我正在使用它们的值做一个简单的计算,我想创建一个名为tech_per_scan的新数组,但我一直得到一个数组,键从0开始自动创建。

    $tech_per_scan = array();
    foreach($tech_pay as $key=>$value)
    {  
        $pay_per_scan = $tech_pay[$key]['tot_pay']/$tech_scans[$key]['scans'];//calculate the payment per scan 
        $tech_per_scan[] = array('id'=>$key,'pay_per_scan'=>$pay_per_scan); 
    }

这行$tech_per_scan[] = array('id'=>$key,'pay_per_scan'=>$pay_per_scan);将向您的数组添加一个元素,并且它将以0作为索引开始,因为您没有指定它的键。类似于array_push

应该是$tech_per_scan[$id]

$tech_per_scan[$id] = $pay_per_scan; 

你应该像这样设置新数组的值:

$tech_per_scan[$key] = $pay_per_scan ; 

完整代码为:

    $tech_per_scan = array();
    foreach($tech_pay as $key=>$value)
    {  
        $pay_per_scan = $tech_pay[$key]['tot_pay']/$tech_scans[$key]['scans'];//calculate the payment per scan 
        $tech_per_scan[$key] = $pay_per_scan ; 
    }