如何在 php 中交错复制数组?
How to interleavedly duplicate an array in php?
例如,我有一个数组:
$x = array("a", "b", "c", "d", "e");
是否有任何函数可以迭代数组的所有值并将值复制到:
$x = array("a", "a", "b", "b", "c", "c", "d", "d", "e", "e");
google了一段时间也没有找到相关的解决方法。
非常感谢!
看起来是相当简单的缩减(使用 array_reduce()
)
$x = array_reduce($x, function($arr, $val) {
array_push($arr, $val, $val);
return $arr;
}, []);
刚意识到 "reduction" 听起来有点滑稽,因为我们正在扩大数组。将其更多地视为 转换 。参见 https://en.wikipedia.org/wiki/Reduce_(parallel_pattern)
不确定是否有这方面的库函数,但您是否正在寻找与此类似的东西:
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;
}
}
例如,我有一个数组:
$x = array("a", "b", "c", "d", "e");
是否有任何函数可以迭代数组的所有值并将值复制到:
$x = array("a", "a", "b", "b", "c", "c", "d", "d", "e", "e");
google了一段时间也没有找到相关的解决方法。
非常感谢!
看起来是相当简单的缩减(使用 array_reduce()
)
$x = array_reduce($x, function($arr, $val) {
array_push($arr, $val, $val);
return $arr;
}, []);
刚意识到 "reduction" 听起来有点滑稽,因为我们正在扩大数组。将其更多地视为 转换 。参见 https://en.wikipedia.org/wiki/Reduce_(parallel_pattern)
不确定是否有这方面的库函数,但您是否正在寻找与此类似的东西:
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;
}
}