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

如何将PHP关联数组foreach统计代码改写为保留键的array_map实现

解决方案

你初步写的$stats = array_map('count', $countries);本身就已经满足保留原数组键的需求:当array_map仅传入一个待处理数组时,默认会保留原数组的所有键(包括字符串关联键和数字索引键),返回的$stats和你原来foreach写法得到的结果完全一致。

如果需要显式保证键值对应关系,避免特殊场景下的逻辑偏差,可以结合array_keys和array_combine实现,逻辑更透明:

$stats = array_combine(
    array_keys($countries),
    array_map('count', $countries)
);

这种写法会先提取$countries的所有原始键,再把array_map处理得到的计数结果和原始键一一对应组装成新数组,完全匹配你原foreach逻辑的效果。

如果后续你需要在计数的同时加入和键相关的处理逻辑,可以扩展回调函数的写法:

$stats = array_combine(
    array_keys($countries),
    array_map(function($country, $key) {
        // 此处可加入需要用到键$key的额外逻辑
        return count($country);
    }, $countries, array_keys($countries))
);

内容的提问来源于stack exchange,提问作者Faye D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 12:15:03