Что лучше для использования в $array PHP [] = $value или array_push ($array, $value)?

Я бы порекомендовал проверить эту статью , более конкретно этот документ , который поможет вам создать моментальный снимок диска Windows.

102
задан dev101 12 February 2019 в 07:17
поделиться

7 ответов

Никакие сравнительные тесты, но я лично чувствую себя подобно $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. Интересный.

136
ответ дан Paolo Bergantino 24 November 2019 в 04:29
поделиться

Word на улице - то, который [] быстрее потому что никакие издержки для вызова функции. Плюс, никому действительно не нравятся функции массива PHP...

"Это... стог сена, игла.... или это стог сена иглы... ах, f *** это... [] ="

18
ответ дан typeoneerror 24 November 2019 в 04:29
поделиться

Из документации php для array_push :

Примечание. Если вы используете array_push () для добавления одного элемента в массив, лучше использовать $ array [] =, потому что таким образом нет накладных расходов на вызов функции.

27
ответ дан 24 November 2019 в 04:29
поделиться

Второй - это вызов функции, поэтому обычно он должен быть медленнее, чем использование основных функций доступа к массиву. Но я думаю, что даже один запрос к базе данных в вашем скрипте перевесит 1.000.000 вызовов array_push () .

1
ответ дан 24 November 2019 в 04:29
поделиться

Простое объявление $ myarray [] будет быстрее, так как вы просто помещаете элемент в стек элементов из-за отсутствия накладных расходов, которые может вызвать функция.

2
ответ дан 24 November 2019 в 04:29
поделиться

Основное использование array_push () заключается в том, что вы можете поместить несколько значений в конец массива.

В документации сказано:

Если вы используете array_push () для добавления одного элемента в массив, лучше использовать $ array [] = потому что таким образом не возникает накладных расходов на вызов функции .

38
ответ дан 24 November 2019 в 04:29
поделиться

Одно отличие состоит в том, что вы можете вызывать array_push () с более чем двумя параметрами, то есть вы можете помещать в массив более одного элемента за раз.

$myArray = array();
array_push($myArray, 1,2,3,4);
echo join(',', $myArray);

печатает 1,2,3,4

8
ответ дан 24 November 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: