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

如何检查PHP数组中job_id键的取值差异及统计不同值数量

PHP数组:判断所有job_id是否一致&统计不同job_id数量

先把你的数组整理成更易读的格式:

$jobs = [
    ['id' => 1, 'job_id' => 100],
    ['id' => 2, 'job_id' => 100],
    ['id' => 3, 'job_id' => 101]
];

1. 判断所有元素的job_id是否全部相同

最简洁的方式是先提取所有job_id,去重后判断数组长度是否为1:

// 提取所有job_id到新数组
$jobIds = array_column($jobs, 'job_id');
// 去重后长度为1则所有job_id相同
$allJobIdsSame = count(array_unique($jobIds)) === 1;

// 测试示例数组的结果
var_dump($allJobIdsSame); // 输出 bool(false)

原理很简单:array_column直接从多维数组中取出指定键的值,array_unique会移除重复值。如果去重后的数组只有1个元素,说明原数组里所有job_id都一样。

如果你需要在遍历过程中提前终止(比如超大数组时节省性能),可以用array_reduce:

$allJobIdsSame = array_reduce($jobs, function($carry, $item) {
    static $firstJobId;
    // 第一次循环记录第一个job_id
    if ($firstJobId === null) {
        $firstJobId = $item['job_id'];
        return true;
    }
    // 后续循环对比,只要有不同就返回false,不再继续遍历
    return $carry && ($item['job_id'] === $firstJobId);
}, true);

2. 统计不同job_id的数量

同样基于提取的job_id数组,有两种常用方式:

方式一:去重后统计长度

$jobIds = array_column($jobs, 'job_id');
$uniqueJobIdCount = count(array_unique($jobIds));

var_dump($uniqueJobIdCount); // 输出 int(2)

方式二:统计每个job_id的出现次数(同时能看到频次)

用array_count_values可以得到每个job_id出现的次数,数组的长度就是不同job_id的数量:

$jobIds = array_column($jobs, 'job_id');
$jobIdFrequency = array_count_values($jobIds);
$uniqueJobIdCount = count($jobIdFrequency);

// 输出频次数组
print_r($jobIdFrequency);
// 结果:
// Array
// (
//     [100] => 2
//     [101] => 1
// )

这种方式额外的好处是能知道每个job_id出现了多少次,适合需要更详细统计的场景。


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

相关产品推荐
方舟 Agent Plan

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

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