$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