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 vaut 0, alors la ligne est insérée au début du tableau. Si index 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 type array ;
  • la valeur tv n'est pas un array PHP ;
  • une clef de tv n'est pas le nom d'un attribut attaché à l'attribut idAttr.

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.

13.6.3.1.8 Voir aussi

×