При чтении php manual на массив push я обнаружил, что он предлагает использовать $ array [] = $ push для ввода новых записей.
так что мой вопрос в том, как я могу использовать это с многомерными массивами наиболее эффективным способом, то есть скоростью.
Examlple 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
АКТУАЛЬНО КОД Для TEST:
<?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
Так толкающий массив является NO GO! Это был в среднем около 15 трасс с каждым подсчетом петель до 100 * 1000 :)
Пример 1 не использует $ array [1], поэтому результат отличается. Можете ли вы отправить _complete_ код для обоих примеров, чтобы дать понять, что именно вы хотите сравнить? –
да дайте мне всего несколько минут. @DmitriZaitsev –
@DmitriZaitsev Код написан –