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

PHP数组处理:将产品ID转换为出现次数统计数组

实现热门产品ID计数的可行方案

嘿,这需求我熟!你已经拿到了包含热门产品ID的对象数组,要统计每个ID的出现次数来找出最热门产品,思路完全没问题——合并数据再计数就行,给你一套PHP的具体实现方案:

核心实现步骤

  1. 拆分并收集所有产品ID:遍历原始数组,把每个对象里逗号分隔的ID字符串拆成单个ID,合并到一个一维数组中
  2. 统计ID出现次数:用PHP内置函数快速完成计数
  3. 按热度排序(可选):把统计结果按出现次数降序排列,让热门产品排在最前面

完整代码示例

// 你的原始产品ID数组
$originalProducts = [
    (object)['popular_product' => '2,60'],
    (object)['popular_product' => '12,61,60'],
    (object)['popular_product' => '2'],
    (object)['popular_product' => '9'],
    (object)['popular_product' => '14'],
];

// 1. 收集所有单个产品ID
$allIds = [];
foreach ($originalProducts as $item) {
    // 拆分逗号分隔的ID,同时处理可能存在的空格(可选)
    $ids = array_map('trim', explode(',', $item->popular_product));
    $allIds = array_merge($allIds, $ids);
}

// 2. 统计每个ID的出现次数
$countResult = array_count_values($allIds);

// 3. 按出现次数降序排序,保持ID与次数的对应关系
arsort($countResult);

// 输出最终统计结果
print_r($countResult);

代码解释

  • explode(',', $item->popular_product):把每个对象里的ID字符串拆成数组,比如'2,60'会变成['2', '60']
  • array_map('trim', ...):如果你的ID字符串里可能有空格(比如'2, 60'),这一步可以帮你去掉空格,避免统计错误
  • array_count_values():PHP内置的计数函数,直接返回一个以ID为键、出现次数为值的数组,省心又高效
  • arsort():按值从大到小排序,并且保留键名,这样你能直接看到哪个ID最热门

运行这段代码后,你会得到这样的结果:

Array ( [60] => 2 [2] => 2 [12] => 1 [61] => 1 [9] => 1 [14] => 1 )

这样就能清晰看到每个产品ID的热门程度啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:29:17