我在 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
?
最佳答案
在 JavaScript 中,数组只能包含数字索引,这就是为什么 PHP 将带有字符串索引的关联数组输出为 JavaScript 对象,这是最接近的表示形式。
但是,您可以迭代 JavaScript 对象的属性:
for (var name in myObject) {
// value = myObject[name]
}
关于javascript - 将 PHP 对象转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32374026/