$count = count($a1);
for ($i = 0; $i < $count; $i++) {
$newArray[] = $a1[$i];
$newArray[] = $b1[$i];
}
我的工作东北。
$a1 = array(0,1,2);
$a2 = array(3,4,5);
$start = microtime(TRUE);
for($t = 0; $t < 100000; $t++)
{
$newArray = array();
$count = count($a1);
for ($i = 0; $i < $count; $i++)
{
$newArray[] = $a1[$i];
$newArray[] = $a2[$i];
}
}
echo round(microtime(TRUE) - $start, 2); # 0.6
$a1 = array(0,1,2);
$a2 = array(3,4,5);
$start = microtime(TRUE);
for($t = 0; $t < 100000; $t++)
{
$newArray = array();
for ($i = 0; $i < count($a1); $i++)
{
$newArray[] = $a1[$i];
$newArray[] = $a2[$i];
}
}
echo round(microtime(TRUE) - $start, 2); # 0.85
所以预计数阵列尺寸将是〜1/4引证需要](上刻着100.000迭代你将获得总共0.2)更快。如果您将count()
置于循环内,则会每iteration
重新计数。 1/4在我看来相当快。如果你正在寻找编译功能,你可以停下来。
P.S.基准就像比基尼,它向你展示了一切,没有任何东西。
我不确定为什么内置函数会更快?这基本上是你想要做的,不是吗? – Nanne 2012-08-06 11:37:16
我想你可以将一个数组的元素存储在奇数位置,并将其他数组的元素存储在偶数位置,如果你想要以一个交替序列合并它们。 – Fyre 2012-08-06 11:38:12
@qwertymk不知道,但现在你有+1:-1 – Fluffeh 2012-08-06 11:41:12