Я бы порекомендовал проверить эту статью , более конкретно этот документ , который поможет вам создать моментальный снимок диска Windows.
Никакие сравнительные тесты, но я лично чувствую себя подобно $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
. Интересный.
Word на улице - то, который [] быстрее потому что никакие издержки для вызова функции. Плюс, никому действительно не нравятся функции массива PHP...
"Это... стог сена, игла.... или это стог сена иглы... ах, f *** это... [] ="
Из документации php для array_push
:
Примечание. Если вы используете array_push () для добавления одного элемента в массив, лучше использовать $ array [] =, потому что таким образом нет накладных расходов на вызов функции.
Второй - это вызов функции, поэтому обычно он должен быть медленнее, чем использование основных функций доступа к массиву. Но я думаю, что даже один запрос к базе данных в вашем скрипте перевесит 1.000.000 вызовов array_push ()
.
Простое объявление $ myarray [] будет быстрее, так как вы просто помещаете элемент в стек элементов из-за отсутствия накладных расходов, которые может вызвать функция.
Основное использование array_push () заключается в том, что вы можете поместить несколько значений в конец массива.
В документации сказано:
Если вы используете array_push () для добавления одного элемента в массив, лучше использовать $ array [] = потому что таким образом не возникает накладных расходов на вызов функции .
Одно отличие состоит в том, что вы можете вызывать array_push () с более чем двумя параметрами, то есть вы можете помещать в массив более одного элемента за раз.
$myArray = array();
array_push($myArray, 1,2,3,4);
echo join(',', $myArray);
печатает 1,2,3,4