Page 1 sur 1

[Résolu] Ajouter une clé à un tableau si absente

Posté : 05 mars 2012, 15:02
par Nico
Bonjour,

Je chercher à rajouter une clé à mon tableau si elle n'existe pas.
Exemple :
Array
(
    [2012-02-04] => Array
        (
            [messages] => 56
        )

    [2012-02-05] => Array
        (
            [sujets] => 2
            [messages] => 42
        )

    [2012-02-06] => Array
        (
            [sujets] => 3
            [messages] => 32
        )

    [2012-02-07] => Array
        (
            [sujets] => 2
            [messages] => 40
        )

    [2012-02-08] => Array
        (
            [sujets] => 5
            [messages] => 60
        )
...
Deviendrai :
Array
(
    [2012-02-04] => Array
        (
            [sujets] => 0    
            [messages] => 56
        )

    [2012-02-05] => Array
        (
            [sujets] => 2
            [messages] => 42
        )

    [2012-02-06] => Array
        (
            [sujets] => 3
            [messages] => 32
        )

    [2012-02-07] => Array
        (
            [sujets] => 2
            [messages] => 40
        )

    [2012-02-08] => Array
        (
            [sujets] => 5
            [messages] => 60
        )

Possible ?

Merci

Re: Ajouter une clé à un tableau si absente

Posté : 05 mars 2012, 15:19
par xTG
$tab = array( 0 => 0, 2 => 2, 3 => 3);
$tab[1] = 1;
var_dump($tab);
;)

Re: Ajouter une clé à un tableau si absente

Posté : 05 mars 2012, 15:35
par Nico
Merci pour ta réponse.
J'ai réussi à obtenir mon résultat avec l'exemple ci dessous, mais je ne sais pas si c'est le plus efficace/propre.

Avis ?

Merci
        foreach ($dates AS $key => $values) {
            if (!isset($values['sujets']) OR !isset($values['messages']))
            {
                $newdate[$key]['sujets'] = (isset($values['sujets'])) ? $values['messages'] : 0;
                $newdate[$key]['messages'] = (isset($values['messages'])) ? $values['messages'] : 0;
            }
            else
            {
                $newdate[$key] = $values;
            }
        }

Re: Ajouter une clé à un tableau si absente

Posté : 05 mars 2012, 16:22
par xTG
Plutôt que de dupliquer le tableau utilises le tableau source (sauf si ta duplication a une réelle utilité par la suite).
Ce qui impliquera aussi que le else ne sera pas nécessaire.

Re: Ajouter une clé à un tableau si absente

Posté : 05 mars 2012, 16:30
par Nico
Plutôt que de dupliquer le tableau utilises le tableau source (sauf si ta duplication a une réelle utilité par la suite).
Ce qui impliquera aussi que le else ne sera pas nécessaire.
La duplication n'a pas plus d'intêret que ça, c'est car je ne savais pas faire autrement.
Je ne vois pas comment je peux rester sur le tableau original.

Re: Ajouter une clé à un tableau si absente

Posté : 05 mars 2012, 16:58
par xTG
Prenons l'exemple d'incrémenter chaque valeur d'un tableau numérique :
foreach($monTableau as $index => $valeur){
  $monTableau[$index] = $valeur + 1;
}
Cela t'éclaire-t-il ? :)

Re: Ajouter une clé à un tableau si absente

Posté : 05 mars 2012, 17:48
par Nico
En effet, c'est d'une évidence :)

Merci ;-)