如何在PHP中获取关联数组值?

时间:2018-06-17 15:16:56

标签: php

我在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.任何想法?

1 个答案:

答案 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格式。

希望这有帮助。