PHP中将整数数组转换为整数有没有比implode转int更直接的方法?
整数数组转单个整数的实现方案
根据你的使用场景,可以选择更适配的实现方式:
场景1:数组元素均为0-9的个位数,按位拼接为整数
这种场景无需经过字符串转换,直接通过数值计算实现,性能更高,逻辑更直接:
- 全版本兼容的遍历写法:
$finalNum = 0; foreach ($result as $digit) { $finalNum = $finalNum * 10 + $digit; } return $finalNum;
- PHP 7.4及以上版本可用的一行精简写法:
return array_reduce($result, fn($carry, $item) => $carry * 10 + $item, 0);
场景2:数组元素可包含多位数,需按元素字面量顺序拼接为整数
如果你需要的逻辑和当前implode方案的逻辑一致(例如输入[12,3]时输出123),你原有的写法已经是比较简洁的实现,针对前导零的场景可以做优化:return intval(ltrim(implode('', $result), '0')) ?: 0;
上述优化可以避免全零数组拼接后被ltrim处理为空的问题。
内容的提问来源于stack exchange,提问作者af_159623
相关产品推荐
相关产品推荐

