The foreach loops nested, PHP, how to manipulate the values?

advertisements
foreach ($bing_array as $bing_array_val)
{
    foreach ($final_array as $final_array_val)
    {
        if ($final_array_val["link"] == $bing_array_val["link"])
        {

            $final_array_val["rank"] += $bing_array_val["rank"];
        }
    }
}

The above code has two foreach loops, which are nested.

It should test every bing_array["link"] against every final_array["link"] and if they are the same, the final_array["rank"] value should be += bing_array["rank"] but when I echo final_array, the ["rank"] values are unchanged.

I assume this is a syntax problem, where am I going wrong?

Thanks


You need to use the reference syntax (& prefix):

foreach ($final_array as &$final_array_val)
{
}
unset($final_array_val);

Note that the unset is required to break the reference to the last value. Read more here.