Php 如何更新关联数组

Php 如何更新关联数组,php,Php,我不知道我的php代码有什么问题。我想有一个关联数组的格式。当我运行代码时,我得到了这些数据。[KY]是[OH]数组中的一个数组 Array ( [Oh] => Array ( [state] => Oh ) [income] => 100 [count] => 1 [Ky] => Array ( [state] => Ky ) ) Array ( [OH] => Array ( [income] => [count] =

我不知道我的php代码有什么问题。我想有一个关联数组的格式。当我运行代码时,我得到了这些数据。[KY]是[OH]数组中的一个数组

Array ( [Oh] => Array ( [state] => Oh ) [income] => 100 [count] => 1 [Ky] => Array ( [state] => Ky ) )

Array (
   [OH] => Array 
   ( [income] =>
     [count] =>
   )
   [KY] => Array
   ( [income] =>
     [count] =>
   )   

Here is my code
Example data in $array
Array ( [0] => Array ( 
[SurveyDate] => 1952-06-21 
[Income] => 100 
[CountyState] => Hamilton|Oh 
[count] => 1 ) )

function update_array_value3( $array )
{
    foreach ($array as $row) 
    {
        $arrCountyState = explode( "|", $row['CountyState'] );

        $key = $arrCountyState[1];  // OH or KY

        if( !isset( $_SESSION['sIncome'][$key] ) )
        {
            $_SESSION['sIncome'][$key]['state'] = $key;
            $_SESSION['sIncome'][$key]['income'] = $row['Income'];
            $_SESSION['sIncome'][$key]['count'] = 1;
        } else
        {
            $_SESSION['sIncome'][$key]['state'] = $key;
            $_SESSION['sIncome'][$key]['income'] += $row['Income'];
            $_SESSION['sIncome'][$key]['count'] += 1;
        }
    }

我不能简单地根据这段代码告诉您问题的根本原因,但它似乎不包含您期望的数据,或者不包含任何数据

在您的代码中引用了
$row['CountyState']
,但在
$array
中我没有看到任何名为
CountyState
的数组项


另外,我不确定这是否是有意的,但在您的
foreach()
循环中,它看起来像是
$\u会话['sIncome']['income']
$\u会话['sIncome']['count']
正在被覆盖。每次循环遇到新的
$key
,它都会覆盖这些值。

首先,没有理由通过引用传递
$array
,因为您没有修改它的值。将:
update\u array\u value3(&$array)
转换为:
update\u array\u value3($array)
同样适用于您的
foreach()
循环,您不需要通过引用传递
$row
(删除
&
)。您能更新问题以向我们展示
$array
的结构吗,在了解我们正在处理的内容之前,我们无法真正帮助您。从$array和$row中删除(&R)修复了此问题。我不知道为什么,但我非常高兴。很高兴我能帮上忙:)