javascript - 将 PHP 对象转换为数组

标签 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;

在我看来,我想传递resultJavaScript 。所以我这样做:

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/

相关文章:

javascript - 如何打印另一个数组中的数组值而不是 "[object]"

arrays - 在 PowerShell 中调整字节数组图像的大小

lambda 的 Javascript 隐式参数名称

javascript - 如何在 Node 博客应用程序中保留分页页面?

PHP call_user_func & $class->$func() 函数

php - 通过 php curl 的多个请求会影响我的 vps 速度

javascript - 使用 sinon 时出现不一致的 UnhandledPromiseRejectionWarning

javascript - 自动完成最小长度 angularjs

php - MySQL查询具有多个条件但结果有限

javascript - 如何在每次导入时获取导出对象的新实例?