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,
A voir également:

2 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
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
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
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
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
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
$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
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
Xeis
 
Ohh, toute mes escuses c'est ma faute.

Problème résolu merci bien :)
0