PHP如何高效判断多个数组的指定键值是否全部相同
实现方案
你可以先把所有待校验的数组放到一个统一的列表里,提取所有hired字段值后去重,只要去重后的结果长度为1就说明所有值完全一致,不需要逐个写判断,数组再多也只需要改列表内容即可:
// 1. 把所有要检查的数组合并为一个数组 $targetArrays = [$arrayOne, $arrayTwo, $arrayThree]; // 2. 提取所有数组的hired字段值 $allHired = array_column($targetArrays, 'hired'); // 3. 去重后判断是否仅剩下一个唯一值 $allHiredSame = count(array_unique($allHired)) === 1; // 直接在条件中使用即可 if ($allHiredSame) { // 所有hired字段一致的逻辑 }
可选增强(兼容异常场景)
如果需要避免部分数组不存在hired字段导致的判断误差,可以加一层校验:
$targetArrays = [$arrayOne, $arrayTwo, $arrayThree]; $allHired = array_column($targetArrays, 'hired'); // 先确认所有数组都存在hired字段,再判断值是否一致 $allHiredSame = count($allHired) === count($targetArrays) && count(array_unique($allHired)) === 1;
低版本PHP兼容方案
array_column是PHP 5.5及以上版本支持的方法,如果运行环境版本更低,可以用array_map替代字段提取逻辑:
$allHired = array_map(function($arr) { return isset($arr['hired']) ? $arr['hired'] : null; }, $targetArrays);
内容的提问来源于stack exchange,提问作者Rain Man
相关产品推荐
相关产品推荐

