13.6.3.1 Doc::addArrayRow()
La méthode addArrayRow
permet d'ajouter, ou d'insérer, une ligne dans un
attribut de type array
.
13.6.3.1.1 Description
string addArrayRow ( string $idAttr, array $tv, int $index = -1 )
La méthode addArrayRow
permet d'ajouter, ou d'insérer à un indice donné, une
ligne dans un attribut de type array
.
La ligne insérée entraîne un décalage des lignes d'indice supérieur, qui montent alors toutes d'un cran.
13.6.3.1.1.1 Avertissements
Lors de chaque appel à addArrayRow
, un setValue est effectué pour chacune des
colonnes de l'array. Pour ajouter de nombreuses lignes, il peut être plus
efficace de gérer manuellement l'ajout dans chaque colonne.
13.6.3.1.2 Liste des paramètres
- (string)
idAttr
- Le nom de l'attribut de type
array
auquel on souhaite ajouter, ou insérer, une ligne. - (array)
tv
- Un tableau associatif dont la clef est le nom d'un attribut colonne du array, et la valeur est la valeur a affecter à cette colonne.
- (int)
index
-
index
permet de spécifier l'indice (à partir de 0) où insérer la ligne dans le tableau.Si
index
vaut0
, alors la ligne est insérée au début du tableau. Siindex
vaut -1 ou est supérieur ou égal au nombre de lignes du tableau, la ligne est alors ajoutée à la fin du tableau.
13.6.3.1.3 Valeur de retour
La méthode retourne une chaîne vide s'il n'y a pas d'erreur, ou une chaîne non-vide contenant le message d'erreur dans le cas contraire.
13.6.3.1.4 Erreurs / Exceptions
Une erreur est retournée si :
- l'attribut
idAttr
n'est pas de typearray
; - la valeur
tv
n'est pas un array PHP ; - une clef de
tv
n'est pas le nom d'un attribut attaché à l'attributidAttr
.
13.6.3.1.5 Historique
Aucun.
13.6.3.1.6 Exemples
Soit un attribut faces
de type array
auquel sont rattachés les attributs
face_firstname
et face_lastname
de type text
.
-
Exemple #1
/* * Vide le tableau */ $photo->clearArrayValues(\Dcp\AttributeIdentifier\MyPhoto::faces); /* * Ajoute une ligne */ $row = array( \Dcp\AttributeIdentifiers\MyPhoto::face_firstname => 'Marge', \Dcp\AttributeIdentifiers\MyPhoto::face_lastname => 'Simpson' ); $photo->addArrayRow(\Dcp\AttributeIdentifier\MyPhoto::faces, $row); /* * Ajoute une autre ligne */ $row = array( \Dcp\AttributeIdentifiers\MyPhoto::face_firstname => 'Homer', \Dcp\AttributeIdentifiers\MyPhoto::face_lastname => 'Simpson' ); $photo->addArrayRow(\Dcp\AttributeIdentifier\MyPhoto::faces, $row); /* * Insère une ligne entre Marge et Homer */ $row = array( \Dcp\AttributeIdentifiers\MyPhoto::face_firstname => 'Lisa', \Dcp\AttributeIdentifiers\MyPhoto::face_lastname => 'Simpson' ) $photo->addArrayRow(\Dcp\AttributeIdentifier\MyPhoto::faces, $row, 1); /* * Insère une ligne au début */ $row = array( \Dcp\AttributeIdentifiers\MyPhoto::face_firstname => 'Bart', \Dcp\AttributeIdentifiers\MyPhoto::face_lastname => 'Simpson' ) $photo->addArrayRow(\Dcp\AttributeIdentifier\MyPhoto::faces, $row, 0);
Le tableau
MyPhoto::faces
résultant est alors composé comme suit :+-----------+----------+ | Firstname | Lastname | +===========+==========+ #0 | Bart | Simpson | #1 | Marge | Simpson | #2 | Lisa | Simpson | #3 | Homer | Simpson | +-----------+----------+
13.6.3.1.7 Notes
Aucune.