将PHP对象转换为数组

时间:2015-09-03 11:11:49

标签: javascript php arrays json

我在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

1 个答案:

答案 0 :(得分:2)

在JavaScript中,数组只能包含数字索引,这就是为什么PHP输出一个带字符串索引的关联数组作为JavaScript对象的原因,这是最接近的表示。

但是,您可以迭代JavaScript对象的属性:

for (var name in myObject) {
   // value = myObject[name]
}