Следует ли использовать 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[] = ... быстрее.

Другие вопросы по тегам