Bonjour à tous !

Je souhaite résoudre mes problèmes d'optimisations suite à un parse d'analyse de mon code via un PHP CodeSniffer qui indique si votre code respecte les "standards" de php.

Il apparaît une proposition d'optimisation assez agaçante. Je vous place le contexte :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$variable = array(
   'truc' => array(
       'otherkey1' => 'value a',
       'otherkey2' => 'value b',
   ),
   'machin' => array(
       'otherkey1' => 'value c',
       'otherkey2' => 'value d',
   ),
);
 
foreach ($variable as $key => $value) {
   echo $value['otherkey1'];
}
Ceci me permet de parcourir rapidement un tableau multidimensionnel, et d'accéder en direct au contenu souhaité grâce à $value .

Hors, l'optimisation m'indique une 'erreur' :
Unused variable $key.
Ce qui est effectivement vrai.
Alors je me suis penché pour savoir comment résoudre cette optimisation, tout en sachant que je ne comprends pas pourquoi PHP propose cette possibilité d'accès direct au contenu, et vous le reprocher après.

Je me suis dit alors de revoir chacun de mes foreach :

soit : qui me ferait faire trop de modification dans mes foreach complexes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
foreach (array_keys($variable) as $key) {
   echo $variable[$key]['otherkey1'];
}
soit : que je trouve pas très 'intelligent'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
foreach ($variable as $key => $value) {
   $key=$key;
   echo $value['otherkey1'];
}
soit : que je ne trouve pas très 'intelligent' et qui devra m'imposera encore plus de modifications
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
foreach ($variable as $key => $value) {
    $value=$value;
    echo $variable[$key]['otherkey1'];
}
ou soit : qui me fera le moins de changements compte tenu de la complexité réelle de certain foreach :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
foreach (array_keys($variable) as $key) {
    $value=$variable[$key];
    echo $value['otherkey1'];
}
Certains m'ont aussi émit l'hypothèse suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
foreach (array_keys($variable) as $key) {
    foreach (array_keys($variable[$key]) as $value) {
        echo $value['otherkey1'];
    }
}
Je ne sais pas si certains ont été confronté à ça, mais en gros, le php codesniffer m'invite à améliorer un code qui me semble déjà plus logique que les solutions alternatives conventionnelles.

Est-ce que quelqu'un a un avis pour avoir une meilleure solution ?
Merci

Cordialement