Problème foreach - suppression ligne Array

Fermé
M_Tufux - 10 mai 2017 à 09:31
 M_Tufux - 11 mai 2017 à 16:53
Bonjour,

J'ai ce foreach qui fonctionne:
foreach ($reponse as $key => $value) {
            unset($value[$min['ID']]);
            unset($value[$min['ID'].'ID']);
            $reponse[$key] = $value;
          }


et celui-ci:
foreach($reponse as $key => $value)
      {
        //Je souhaite les index de la 2e dimension donc 2e foreach
        foreach($value as $key2 => $value2)
        {
          echo floor(count($value)/4);
          var_dump($value);
          //Division par 4 pour ne pas prendre en compte les ID et pour diviser par 2 les reponses => mediane
          if($key2 == floor(count($value)/4) && is_numeric($key2))
          {
            //idReponseArray = ID
            $mediane[$key]['idTabReponse'] = $key2;
            //ID reponse de tblreponse
            $mediane[$key]['idTBLReponse'] = $value[$key2.'ID'];

          }

        }
      }



Ma question est la suivante: Dans mon cas, j'aimerais obtenir la valeur de l'indice count($tab/2). Si j'ai un tableau php avec les indices 0, 1, 2 etc., que je décide de supprimer l'indice 2 et que $key dans mon foreach contient la clé de chaque ligne, comment est-ce que je peux savoir quel est l'indice le plus proche de count($tab/2)?


je vous montre mes var_dump:
AVANT
array (size=10)
0 => string 'Très bien' (length=10)
'0ID' => string '2' (length=1)
1 => string 'Bien' (length=4)
'1ID' => string '3' (length=1)
2 => string 'Moyen' (length=5)
'2ID' => string '4' (length=1)
3 => string 'Mauvais' (length=7)
'3ID' => string '5' (length=1)
4 => string 'Mauvais' (length=7)
'4ID' => string '5' (length=1)



APRES

array (size=8)
0 => string 'Très bien' (length=10)
'0ID' => string '2' (length=1)
2 => string 'Moyen' (length=5)
'2ID' => string '4' (length=1)
3 => string 'Mauvais' (length=7)
'3ID' => string '5' (length=1)
4 => string 'Mauvais' (length=7)
'4ID' => string '5' (length=1)


Votre aide est la bienvenue! Merci!
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
11 mai 2017 à 12:18
Salut,

Tu peux éventuellement réindexer les clés de ton tableau après la suppression d'un élément. Exemple :
$array1 = array('valeur0', 'valeur1', 'valeur2', 'valeur3');
var_dump($array1); // array keys : 0, 1, 2, 3

unset($array1[1]);
var_dump($array1); // array keys : 0, 2, 3

$array2 = array_values($array1);
var_dump($array2); // array keys : 0, 1, 2


Bonne journée,
0
Hello,

Merci pour ta réponse. Je viens de régler le problème hier. Je ne vais pas entrer dans les détails mais pour détecter que je suis au milieur du tableau dans le foreach, j'utilise une variable $i que j'incrémente à chaque passage. Ensuite, j'utilise la $key actuelle que je mets dans mon nouveau tableau

Voilà!
0