如何用极简(近一行代码)方式复制数组元素实现数组翻倍?
简洁实现PHP数组元素翻倍的方案
针对你给出的数组需求,这里有几种接近一行代码的简洁实现方式:
- 方法一:结合array_map与array_merge
利用array_map将每个元素转换为包含两个自身的子数组,再通过call_user_func_array调用array_merge合并所有子数组:
$prices = call_user_func_array('array_merge', array_map(fn($v) => [$v, $v], $prices));
- 方法二:使用array_reduce与展开运算符
通过array_reduce遍历原数组,每次将当前元素重复两次添加到结果数组中(PHP 7.4+支持箭头函数与展开运算符):
$prices = array_reduce($prices, fn($acc, $v) => [...$acc, $v, $v], []);
两种方法都能实现将原数组每个元素复制到下一个位置,最终得到你需要的翻倍后数组。
内容的提问来源于stack exchange,提问作者Faye D.
相关产品推荐
相关产品推荐

