Php 如何更新关联数组
我不知道我的php代码有什么问题。我想有一个关联数组的格式。当我运行代码时,我得到了这些数据。[KY]是[OH]数组中的一个数组Php 如何更新关联数组,php,Php,我不知道我的php代码有什么问题。我想有一个关联数组的格式。当我运行代码时,我得到了这些数据。[KY]是[OH]数组中的一个数组 Array ( [Oh] => Array ( [state] => Oh ) [income] => 100 [count] => 1 [Ky] => Array ( [state] => Ky ) ) Array ( [OH] => Array ( [income] => [count] =
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)修复了此问题。我不知道为什么,但我非常高兴。很高兴我能帮上忙:)