Следует ли использовать array_push() для построения массива с помощью итеративного подхода в PHP?
Если бы я хотел построить массив с парами данных, которые следуют шаблону, как $n => myFunction($n)
Я думаю, я хочу сделать что-то вроде этого:
$myArray = array();
foreach ($n as $key) {
$new_data = array($key => myFunction($key));
array_push($myArray, $new_data);
}
Однако я слышал, что разработчики критикуют функцию array_push(), поэтому мне интересно, есть ли лучший способ сделать это.
1 ответ
Это неплохо само по себе, но вызовы функций в PHP относительно медленные, так что если вы избегаете array_push
во всем вашем коде вы можете заметить эффект. Лично я всегда использую []
запись, в основном потому, что я думаю, что это чище, но это также быстрее.
$myArray[] = $new_data;
Даже документацияarray_push
упоминает эту альтернативу как более быструю:
Примечание: если вы используете
array_push()
чтобы добавить один элемент в массив, лучше использовать $array[] =, потому что в этом случае нет необходимости вызывать функцию.
Но есть и преимущество array_push
, вы можете использовать его, чтобы поместить несколько элементов в массив:
array_push($myArray, 'value1', 'value2', 'value3');
Таким образом, он имеет свои применения, но для добавления отдельных элементов за раз, как вы делаете, более короткая запись $myArray[] = ...
быстрее.