我在StackOverflow上看过其他解决方案,但我的情况有点不同。
我在PHP中有一个图表工厂,它接收一个字符串数组,例如:
$charts = ['SomeChart', 'SomeOtherChart', 'AndAnotherChart'];
然后循环遍历一个数组,如果它存在则返回一个新类,然后运行一个名为' run'的默认方法。
foreach($charts as $key => $param) {
try {
if($chart = ChartsFactory::build($param)) {
$result['charts'][$param] = $chart->run();
}
} catch (\Exception $e) {
$result[$param] = $e->getMessage();
}
}
然后我return $result;
。
在我的观点中,我想将result
传递给JavaScript
。所以我这样做:
var result = <?php echo json_encode($result);?>;
一切正常,但唯一的问题是JavaScript
收到了Object
而不是Array
,这不是我想要的,因为我想要在其上运行forEach和其他一些Array
相关的东西。
如何将其转换为Array
或确保收到Array
?
答案 0 :(得分:2)
在JavaScript中,数组只能包含数字索引,这就是为什么PHP输出一个带字符串索引的关联数组作为JavaScript对象的原因,这是最接近的表示。
但是,您可以迭代JavaScript对象的属性:
for (var name in myObject) {
// value = myObject[name]
}