La sintaxis y los parámetros que debemos utilizar son los siguientes:
int array_push ( array &$array , mixed $value1 [, mixed $... ] );
Lo que hacemos es pasarle un array por referencia como primer parámetro y a continuación los elementos a añadir. La función nos devolverá un valor entero con el número de elementos del array después de haber insertado lo que hayamos definido.
Un ejemplo lo podemos ver aquí:
<?php
$myarray = array('pera', 'manzana', 'naranja');
array_push($myarray, 'melón', 'sandía');
?>
$myarray = array('pera', 'manzana', 'naranja');
array_push($myarray, 'melón', 'sandía');
?>
Esto devolvería lo siguiente:
Array
(
[0] => pera
[1] => manzana
[2] => naranja
[3] => melón
[4] => sandía
)
(
[0] => pera
[1] => manzana
[2] => naranja
[3] => melón
[4] => sandía
)
Otra forma mucho más sencilla para añadir un elemento al array sería:
<?php
$myarray[] = 'melón';
?>
$myarray[] = 'melón';
?>
Según la documentación oficial de PHP, deberíamos utilizar esta segunda forma si queremos únicamente añadir un elemento, ya que así evitamos la sobrecarga de llamar a una función. Además, esta segunda forma crea el array si no existe, mientras que con la función array_push() nos devolvería un warning.
Una comparativa sobre la velocidad de ejecución la podemos ver con una simple prueba que detallamos:
<?php
$myarray = array();
for ($i=0; $i<100000; $i++){
array_push($myarray, $i);
} // tarda 1.5962453267801 segundos
$myarray = array();
for ($i=0; $i<100000; $i++){
$myarray[] = $i;
} // tarda 0.0614528790371 segundos
?>
$myarray = array();
for ($i=0; $i<100000; $i++){
array_push($myarray, $i);
} // tarda 1.5962453267801 segundos
$myarray = array();
for ($i=0; $i<100000; $i++){
$myarray[] = $i;
} // tarda 0.0614528790371 segundos
?>
En este caso la mejora de rendimiento es del orden de 26 veces.