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
arrayauquel 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 -
indexpermet de spécifier l'indice (à partir de 0) où insérer la ligne dans le tableau.Si
indexvaut0, alors la ligne est insérée au début du tableau. Siindexvaut -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
idAttrn'est pas de typearray; - la valeur
tvn'est pas un array PHP ; - une clef de
tvn'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::facesré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.