如何在php中交错复制数组?

如何在php中交错复制数组?,php,arrays,duplicates,interleave,Php,Arrays,Duplicates,Interleave,例如,我有一个数组: $x = array("a", "b", "c", "d", "e"); 是否有函数迭代数组的所有值并将值复制到: $x = array("a", "a", "b", "b", "c", "c", "d", "d", "e", "e"); 在谷歌搜索了一段时间后,我还没有找到任何相关的解决方案 非常感谢 使用 $x=数组\减少$x,函数$arr,$val{ 数组\u push$arr、$val、$val; 返回$arr; }, []; 演示~ 刚刚意识到,减少听起来有点

例如,我有一个数组:

$x = array("a", "b", "c", "d", "e");
是否有函数迭代数组的所有值并将值复制到:

$x = array("a", "a", "b", "b", "c", "c", "d", "d", "e", "e");
在谷歌搜索了一段时间后,我还没有找到任何相关的解决方案


非常感谢

使用

$x=数组\减少$x,函数$arr,$val{ 数组\u push$arr、$val、$val; 返回$arr; }, []; 演示~


刚刚意识到,减少听起来有点可笑,因为我们正在使阵列更大。把它更多地看作是一种转变。请参见

不确定是否有用于此的库函数,但您是否正在寻找与此类似的内容:

function duplicate_array($array=array()) {
    $result = array();
    foreach($array as $elem) {
        $result[] = $elem;
        $result[] = $elem;
    }

    return $result;
}
理论上,这应该是你想要的

$x = array("a", "b", "c", "d", "e");

var_dump($x);

$x = duplicate_array($x);

var_dump($x);
这应该输出:

array(5) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
}
array(10) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "a"
  [2]=>
  string(1) "b"
  [3]=>
  string(1) "b"
  [4]=>
  string(1) "c"
  [5]=>
  string(1) "c"
  [6]=>
  string(1) "d"
  [7]=>
  string(1) "d"
  [8]=>
  string(1) "e"
  [9]=>
  string(1) "e"
}


迭代数组并将值存储在新数组中是一个简单的解决方案

$x =  array("a", "b", "c", "d", "e");
$result_array = [];
$repeat_x_times = 2;

foreach ($x as $element) {
    for ($i = 0; $i < $repeat_x_times ; $i++) {
        $result_array[] = $element;
    }
}

类似:你对这项技术的实际用途是什么?存储冗余数据并非最佳做法。你到底在干什么?这样我一出门就能读两遍。为什么不在循环中做两次同样的事情呢?将$a转换为$b{echo$b;echo$b;}澄清您的编码问题永远不会太迟。我投票决定以不清楚的方式结束。您发布的问题和样本数据并不清楚您需要什么帮助。@mickmackusa我认为您在这方面走得对。仔细检查这个问题,我强烈建议将reduce函数的主体更改为:returnarray_merge$arr,array_pad[],$times,$val;-通过这种方式,$times可以很容易地更改-将use$times添加到reduce函数中declaration@dWinder我明白你的意思。不过,我觉得我可以使用PHP splat操作符做一些更简洁的事情。我会考虑一下的