我在php中有一个看起来像这样的关联数组
incSched={"62":"10878","63":"10878","64":"10878","65":"10878","66":"28416","67":"28416","68":"28416","69":"28416","70":"28416"}
如何访问" 62"?
的值我已经尝试了
$amt = $incSched[$j];
$amt = $incSched["$j"];
$amt = $incSched[strval($j)];
它们都返回一个空字符串。
这是完整循环,因此您可以看到$ j是什么:
$startAge = 53;
for ($i=0; $i<count($incTableIds); $i++) {
$tableId = $incTableIds[$i];
for ($j=$startAge; $j<101; $j++) {
$incSched = $incomeSchedules[$tableId];
echo "incSched=" .json_encode($incSched) ."<br>";
$amt = $incSched["$j"];
if ($amt == "") $amt = 0;
if ($j>$startAge) $amt = $incSchedules[$tableId][$j-1]; //use previous value
echo "Income: tableId=$tableId, age=$j, amt=$amt<br>";
$incSchedules[$tableId][$j] = $amt;
}
}
这是循环命中62时的输出
Income: tableId=1, age=62, amt=0
应该是10878,而不是0.任何想法?
答案 0 :(得分:1)
您使用的是JSON格式,但没有引号。为了解码JSON格式,您必须将值转换为JSON字符串。请尝试以下代码:
// $incSched = '[{"62":"10878"},{"63":"10878"},{"64":"10878"},{"65":"10878"},{"66":"28416"},{"67":"28416"},{"68":"28416"},{"69":"28416"},{"70":"28416"}]';
$incSched = '{"62":"10878","63":"10878","64":"10878","65":"10878","66":"28416","67":"28416","68":"28416","69":"28416","70":"28416"}';
$incSched = json_decode($incSched, true);
foreach ($incSched as $key => $value) {
echo $key . '=>'. $value . '<br />';
}
在上面,我给你们两种有效的JSON格式。
希望这有帮助。