Problem avec substr() et in_array()

Fermé
gamerkilli Messages postés 56 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 12 mars 2017 - 19 févr. 2017 à 23:48
jordane45 Messages postés 36376 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2022 - 14 mai 2017 à 03:56
Bonjour,


j'ai un tp à rendre et je suis bloqué sur une question :

Dans le fichier fonctions.php, créez la fonction nommée TriFichiers()
présentée en annexe de ce document.
Cette fonction doit parcourir le tableau de fichiers passé en entrée et mettre dans
un nouveau tableau les noms des fichiers dont l'extension se trouve dans le
tableau d'extensions passé également en entrée. Pour cela, vous aurez besoin de 3
fonctions PHP :

- substr( ) : retourne une partie d'une chaîne de caractères (afin de
récupérer l'extension d'un fichier).
- in_array( ) : vérifie si une valeur appartient à un tableau (afin de vérifier
si l'extension d'un fichier se trouve dans le tableau d'extension).
- array_push( ) : rajoute un élément à la fin d'un tableau (afin d'ajouter le
fichier dans le tableau renvoyé en résultat).

la fonction est présentée en annexe comme ceci :



je m'explique, j'ai donc 2 tableaux , l'un avec des extensions et l'autre avec des fichiers , le problème est le suivant ==> pour parcourir mes 2 tableaux j'utilise un foreach classique sauf que je n'arrive pas a comparer une partie d'une chaine avec substr() pour pouvoir verifier si son extension apparait bien dans le tableau des extensions ...

j'ai pour l'instant testé un truc dans ce genre :

function TriFichier($tab_fichiers, $tab_extensions)
{
    foreach ($tab_fichiers as $i)
    {
         if (substr($i , -3) == in_array($tab_exxtensions))
         {
             array_push($tab_fichiers_tries, $i);
         }
    }
    return $tab_fichiers_tries;
} 


Merci d'avance à celles et ceux qui m’aideront !! :)

2 réponses

forum92 Messages postés 220 Date d'inscription lundi 6 juillet 2015 Statut Membre Dernière intervention 14 août 2018 137
14 mai 2017 à 00:36
Bonjour,
Tu as mis deux x à extensions.
0
jordane45 Messages postés 36376 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 octobre 2022 4 366
14 mai 2017 à 03:56
Bonjour,

En complément de la réponse de forum92 :

La fonction in_array attend au moins deux paramètres ...
La chaine cherchée et l'array la contenant...
https://www.php.net/manual/fr/function.in-array.php


NB: pense à activer l'affichage des erreurs php au début de ton script
error_reporting(E_ALL);
ini_set('display-errors','on');


0