Comment ajouter des éléments à un tableau vide en PHP?

Si je définis un tableau en PHP tel que (je ne définis pas sa taille):

$cart = array();

Est-ce que J'ajoute simplement des éléments à l'aide de ce qui suit?

$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;

Les tableaux en PHP n'ont-ils pas de méthode add, par exemple, cart.add(13)?

380
demandé sur Peter Mortensen 2009-03-24 12:35:00

7 réponses

Les Deux array_push et la méthode que vous avez décrites travail.

<?php
$cart = array();
$cart[] = 13;
$cart[] = 14;
// etc
?>

Est le même que:

<?php
$cart = array();
array_push($cart, 13);
array_push($cart, 14);

// Or 
$cart = array();
array_push($cart, 13, 14);
?>
625
répondu Bart S. 2015-07-31 07:16:51

Il est préférable de ne pas utiliser array_push et utilisez simplement ce que vous avez suggéré. Les fonctions ajoutent simplement des frais généraux.

//We don't need to define the array, but in many cases it's the best solution.
$cart = array();

//Automatic new integer key higher than the highest 
//existing integer key in the array, starts at 0.
$cart[] = 13;
$cart[] = 'text';

//Numeric key
$cart[4] = $object;

//Text key (assoc)
$cart['key'] = 'test';
59
répondu OIS 2015-07-31 07:16:28

Sur la base de mon expérience, votre solution est bonne (meilleure) lorsque les clés ne sont pas importantes:

$cart = [];
$cart[] = 13;
$cart[] = "foo";
$cart[] = obj;
8
répondu fico7489 2018-05-05 18:26:35

Vous pouvez utiliser array_push. Il ajoute des éléments à la fin du tableau, comme dans une pile.

Vous auriez aussi pu le faire comme ceci:

$cart = array(13, "foo", $obj);
7
répondu andi 2009-03-24 10:03:22

Rappelez-vous, cette méthode écrase le premier tableau, utilisez donc uniquement lorsque vous êtes sûr!

$arr1 = $arr1 + $arr2;

(voir la source)

2
répondu T.Todua 2017-05-23 11:47:29

Quand on veut ajouter des éléments avec une indexation d'éléments basée sur zéro, je suppose que cela fonctionnera aussi:

// adding elements to an array with zero-based index
$matrix= array();
$matrix[count($matrix)]= 'element 1';
$matrix[count($matrix)]= 'element 2';
...
$matrix[count($matrix)]= 'element N';
-1
répondu Gestix Team 2014-06-23 09:19:34

Il est appelé array_push: http://il.php.net/function.array-push

-2
répondu Assaf Lavie 2009-03-24 09:37:48