Suppresion d'indice dans un tableau

Résolu
Xeis -  
 Xeis -
Bonjour,

J'ai un tableau avec plein de caractère différents et beaucoup d'indice associés.
J'aimerai supprimer tous les indices contenant un caractère qui se fini par ".pdf"

J'ai donc essayer ceci :

// Fait le tour du tableau

for($d=0;$d<330;$d++) {

//Si l'indice fini par ".pdf"

if (preg_match("#\.pdf$#", $ligneTab[$d])){

unset($ligneTab[$d]);

//Supprimer l'indice.
}
}

J'ai beau essayer ça ne change rien du tout.

Merci de vos réponses,

2 réponses

  1. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
     
    for ($i=0;$i<count($ligneTab);$i++) { 
      if ( (substr($ligneTab[$i], -4)) === ".pdf" ) { 
        unset($ligneTab[$i]); 
      } 
    }


    edit : j'avais oublié un bout, désolé.
    0
    1. Xeis
       
      Il me renvoie un message d'injure lorsque je met ton bout de code,
      je ne vois pas où est-ce que ça ne lui plaît pas.

      Que signifie : substr($ligneTab[$i], -4)

      Merci de ta réponse.
      0
    2. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
       
      je pourrais connaitre l'injure en question ?

      substr permet de récupérer un bout de chaine de la longueur souhaitée, un nombre négatif permet de commencer à la fin

      prends le réflexe de consulter la doc php, c'est très instructif et tu peux même découvrir des fonctions très utiles que tu ne connaissais pas https://www.php.net/substr
      0
  2. ThEBiShOp Messages postés 9307 Date d'inscription   Statut Contributeur Dernière intervention   1 606
     
    $ligneTab = array("bidule1.pdf", "bidule2.pdf", "bidule3", "bidule4.pdf", "bidule5");
    
    var_dump($ligneTab);
    
    $tab2 = $ligneTab;
    
    for ($i=0;$i<count($ligneTab);$i++) { 
      if ( (substr($ligneTab[$i], -4)) === ".pdf" ) {
        unset($tab2[$i]); 
      } 
    }
    
    var_dump($tab2);


    j'ai testé ça et ça fonctionne très bien
    il faut travailler sur une copie du tableau, sinon ça va être compliqué, si on le réduit au fur et à mesure qu'on le parcourt...
    0
    1. Xeis
       
      Mince, j'ai omis un détail, dans mon tableau j'ai par exemple
      123.pdf,456,789
      123.pdf
      2345.pdf,345,678

      Il ma rendu
      456,789

      345,678

      Alors que je voulais garder
      123.pdf,456,789
      et
      2345.pdf,345,678

      Je me trompe de ligne en plus :/
      0
    2. Xeis
       
      Ohh, toute mes escuses c'est ma faute.

      Problème résolu merci bien :)
      0