Нет тестов, но я лично считаю, что $array[]
это чище, и честно говоря, разделение волос за миллисекунды не имеет значения, если вы не планируете добавлять в свой массив сотни тысяч строк.
Изменить : запустить этот код:
$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
$array[] = $i;
}
print microtime(true) - $t;
print '<br>';
$t = microtime(true);
$array = array();
for($i = 0; $i < 10000; $i++) {
array_push($array, $i);
}
print microtime(true) - $t;
Использование первого метода $array[]
почти на 50% быстрее второго.
Некоторые результаты тестов:
Run 1
0.0054171085357666 // array_push
0.0028800964355469 // array[]
Run 2
0.0054559707641602 // array_push
0.002892017364502 // array[]
Run 3
0.0055501461029053 // array_push
0.0028610229492188 // array[]
Это не должно вызывать удивления, поскольку в руководстве по PHP это отмечается:
Если вы используете array_push () для добавления одного элемента в массив, лучше использовать $ array [] =, потому что в этом случае нет накладных расходов на вызов функции.
Я не удивлюсь, как это сформулировано array_push
более эффективно при добавлении нескольких значений. РЕДАКТИРОВАТЬ : Из любопытства провел дополнительное тестирование, и даже для большого количества добавлений отдельные $array[]
вызовы выполняются быстрее, чем один большой array_push
. Интересный.