""
, array_merge() PHP . ? , , : -. PHP - hashtables, .
, , "" . , , - array_merge(). - , . , - "" "" .
array_merge()
, array_merge() . , N , N - . , , , array_merge() (- -).
, :
function repeatMerge($array, $rCount)
{
return call_user_func_array('array_merge', array_fill(1, $rCount, $array));
}
, array_walk()? array_merge() : , - . , - . , ( )
- array_merge() . :
function repeatLoops($array, $rCount)
{
$result = [];
$eCount = count($array);
for($j=0; $j<$rCount; $j++)
{
for($i=0; $i<$eCount; $i++)
{
$result[]=$array[$i];
}
}
return $result;
}
. . , . , , , array_merge() - -.
, ,
Benchmark . , "" ( , ), - , , , array_merge(), . tesing:
$array = range(1, 1000);
$count = 1000;
1E1 :
array(3) {
[1]=>
float(2.1156709194183)
[2]=>
float(0.21156709194183)
[3]=>
int(10)
}
array(3) {
[1]=>
float(1.6837940216064)
[2]=>
float(0.16837940216064)
[3]=>
int(10)
}
1E2 :
array(3) {
[1]=>
float(20.907063007355)
[2]=>
float(0.20907063007355)
[3]=>
int(100)
}
array(3) {
[1]=>
float(16.947901964188)
[2]=>
float(0.16947901964188)
[3]=>
int(100)
}
( - , , , ). ( github).
[1] ( ) :[2] ( ) : avg.[3] ( ) :