0

我有一个 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):

在此处输入图像描述

4

1 回答 1

0

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

simpleArray[i][colorSelected]

根据您的 for 循环定义,您可以拥有i显示的对象中不存在的值 0、1、2(在键处具有属性:3、4、5)。此外,您的 for 循环与对象中的项目数量完全没有关系,我不确定这是有意的。

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

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

这将使它成为一个整数值。

于 2013-05-23T20:29:59.683 回答