You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP将WooCommerce键值对对象转成可map遍历的对象数组

完全可以用PHP完成这个转换,根本不需要必须依赖前端JS处理

你当前的场景本质是把WooCommerce返回的键值对关联数组,重组成索引结构的对象数组,逻辑非常直白,后端直接输出前端需要的格式反而能减少前端的重复代码。

具体代码调整

你现在通过get_allowed_countries()拿到的返回值,是标准的PHP关联数组:两位国家编码当键,国家全称当值。只需要遍历这个数组,把每一组键值对重新打包成带code、name字段的单元,塞进新的索引数组返回即可。

修改后的函数:

function get_billing_countries( $request ) {
    $woo_countries = new WC_Countries();
    $raw_countries = $woo_countries->get_allowed_countries();

    $formatted_countries = [];
    foreach ( $raw_countries as $country_code => $country_name ) {
        $formatted_countries[] = [
            'code' => $country_code,
            'name' => $country_name,
        ];
    }

    return $formatted_countries;
}

最终返回效果

WooCommerce的REST接口会自动把PHP返回的数组做JSON序列化,前端拿到的响应完全匹配你需要的格式,可以直接用map等数组方法遍历,不需要额外做结构转换:

[
    { code: "GB", name: "United Kingdom" },
    { code: "US", name: "United States" },
]

补充说明:如果你习惯用函数式写法,也可以用array_map配合array_keys实现同样效果,但foreach的可读性更高,后续维护成本更低,适合这类业务逻辑简单的场景。

内容的提问来源于stack exchange,提问作者Waterfall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.23 18:15:03