PHP中如何将含逗号分隔值的数组转换为单值一维数组
PHP数组扁平化转换方案
你可以通过以下几种常见方案实现需求:
方案1:基础遍历实现(兼容性最好,支持所有PHP版本)
// 原数组 $oldArr = ['2,4', '3,5']; $newArr = []; foreach ($oldArr as $item) { // 按逗号拆分字符串为数组,合并到结果数组中 $parts = explode(',', $item); $newArr = array_merge($newArr, $parts); } // 输出查看结果 print_r($newArr);
运行后会直接得到你需要的一维索引数组。
方案2:使用array_reduce简化代码(PHP 5.3+支持)
$oldArr = ['2,4', '3,5']; $newArr = array_reduce($oldArr, function($carry, $item) { return array_merge($carry, explode(',', $item)); }, []);
这种写法省去了手动写foreach的步骤,逻辑和方案1完全一致。
方案3:PHP 7.4+ 箭头函数极简写法
$oldArr = ['2,4', '3,5']; $newArr = array_reduce($oldArr, fn($carry, $item) => array_merge($carry, explode(',', $item)), []);
额外说明
如果你需要转换后的元素是整型而非字符串类型,可以在拆分的时候加一步类型转换:
// 把explode的结果转成整型 $parts = array_map('intval', explode(',', $item));
内容的提问来源于stack exchange,提问作者Alok Kumar
相关产品推荐
相关产品推荐

