Saseow
Saseow

Reputation: 23

Assign values to an associated array in a loop

I am having a difficult time creating an associated array and assigning a value to the key. I have two arrays (tech_pay and tech_scans) and I am doing a simple calculation using their values and I want to create a new array called tech_per_scan but I keep getting an array with the key automatically created starting at 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); 
    }

Upvotes: 0

Views: 1439

Answers (3)

JamesN
JamesN

Reputation: 387

you should set value for new array like this :

$tech_per_scan[$key] = $pay_per_scan ; 

Full code is :

    $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 ; 
    }

Upvotes: 0

realshadow
realshadow

Reputation: 2585

This line $tech_per_scan[] = array('id'=>$key,'pay_per_scan'=>$pay_per_scan); will add an element to you array and it will start with 0 as its index, because you did not specify its key. Similar to array_push

It should be $tech_per_scan[$id]

Upvotes: 1

deceze
deceze

Reputation: 522032

$tech_per_scan[$id] = $pay_per_scan; 

Upvotes: 1

Related Questions