访问Json_encoded数组中的Matrix数组值

时间:2013-05-23 20:18:21

标签: php jquery

我有一个php数组,我用json_encode分配给一个javascript变量。 php数组是数字非关联的。

示例:simpleArray [5] [7] = 1.50。我需要能够在根据索引值对数组进行json_encoded后访问1.50。

PHP:

$simpleArray= [];   

foreach($childProducts as $child) { //cycle through simple products to find applicable
    $simpleArray[$child->getVendor()][$child->getColor()] = $child->getPrice();
    var_dump ($simpleArray);
}

使用Javascript:

var simpleArray = <?=json_encode($simpleArray)?>;
//..lots of unrelated code
for(var i=0; i < IDs.length; i++)
{   
    console.log(simpleArray);//see the picture of me below
    var colorSelected = $j("#attribute92 option:selected").val(); //integer value

    $j('.details'+data[i].vendor_id).append('<li class="priceBlock">$'+simpleArray[i][colorSelected]+'</li>');
}

CONSOLE.LOG(simpleArray):

enter image description here

1 个答案:

答案 0 :(得分:0)

在这里,您可能尝试访问对象中不存在的值:

simpleArray[i][colorSelected]

根据您的for循环定义,您可以将i值设置为0,1,2,这些值在显示的对象中不存在(其中键的属性为3,4,5)。你的for循环也与你对象中的项目数没有任何关系,我不确定是这个。

此外,colorSelected从调用val()中获取它的值,该值返回一个字符串,您可能希望将其更改为定义的行:

var colorSelected = parseInt($j("#attribute92 option:selected").val());

这将使其成为整数值。