在阅读有关数组推送的php 手册时,我发现它建议使用 $array[]=$push 输入新条目。
所以我的问题是我将如何以最有效的方式(即速度)将它与多维数组一起使用。
示例 1:
$client[] = (0);
$client[] = (1);
$client[] = (2);
$client[] = (3);
$array[$i++]=$client;
unset($client);
示例 2:
$array[$i++]= array(0,1,2,3);
示例 3:注意:我目前不知道在此设置数组键的好方法
$entry = array(0,1,2,3);
array_push($array,$entry);
嵌套在数组中的 4 个值会非常频繁地更新。为此,我假设使用以下方法将是我在速度和效率方面的最佳选择。
$array[0][0]= $array[1][0]+1;
拼写出来:我有具有唯一标识符的个人客户。我需要为每个客户跟踪 4 个整数。我正在寻找最快/使用最低资源的方法。
总而言之,我不接受任何建议,但我很好奇示例 1 在速度和资源方面是否比示例 2 更好。
谢谢,JT
实际测试代码:
<?php
$array = array();
$i=0;
$t1 = microtime(true);
while ($i<10000){
$array[$i++]= array(0,1,2,3);
}
$time1 = microtime(true) - $t1;
$mem1 = memory_get_peak_usage(true);
//print_r($array);
$array = array();
//echo '<br><br>';
$i=0;
$t2 = microtime(true);
while ($i<10000){
$client[] = (0);
$client[] = (1);
$client[] = (2);
$client[] = (3);
$array[$i++]=$client;
unset($client);
}
$time2 = microtime(true) - $t2;
$mem2 = memory_get_peak_usage(true);
//print_r($array);
$array = array();
//echo ' <br><br>';
$i=0;
$t3 = microtime(true);
while ($i++<10000){
$entry = array(0,1,2,3);
array_push($array,$entry);
}
$time3 = microtime(true) - $t3;
$mem3 = memory_get_peak_usage(true);
//print_r($array);
//echo '<br><br>';
print 'example 1 - ' . $time1 . ' - ' . $mem1 . '<br/>';
print 'example 2 - ' . $time2 . ' - ' . $mem2 . '<br/>';
print 'example 3 - ' . $time3 . ' - ' . $mem3 . '<br/>';
?>
结果:
示例 2 - 0.212869294 S
示例 1 - 0.251849988 S
示例 3 - 0.748561144 S
所以数组推送是不行的!这是大约 15 次运行的平均值,每个循环计数为 100*1000 :)