我有一个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):
答案 0 :(得分:0)
在这里,您可能尝试访问对象中不存在的值:
simpleArray[i][colorSelected]
根据您的for循环定义,您可以将i
值设置为0,1,2,这些值在显示的对象中不存在(其中键的属性为3,4,5)。你的for循环也与你对象中的项目数没有任何关系,我不确定是这个。
此外,colorSelected
从调用val()
中获取它的值,该值返回一个字符串,您可能希望将其更改为定义的行:
var colorSelected = parseInt($j("#attribute92 option:selected").val());
这将使其成为整数值。