Version complète: sur le forum Webmaster Hub : tri dans un tableau
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
xpatval
Bonjour,

Soit un fichier vidéo file_vid, découpé en x parties (file_x).

mon script agit comme suit:
recherche dans un répertoire afin de récupérer différentes valeurs sur les fichiers trouvés (dont je ne connais pas le nombre ni leurs valeurs) qui correspondent à ma sélection (la sélection se fait sur le nom générique, les fichiers réels se nommant par exemple file_1, file_2,..., file_10). Ces valeurs sont stockés dans un tableau.
CODE
                        array_push($tab,array("nom"=>$Entry,"duree"=>$temps,"taille"=>$taille));


J'affiche ensuite les entrées du tableau ($strm) sous forme de liens, afin de pouvoir les lire en streaming .
CODE
                                for ($v = 0; $v < count($strm); $v++)
                                {
                                    $k = $v + 1;
                                    ?>
                                    <tr>
                                        <td style="text-align:center; "><a target="_blank" href="mem_vid_strm.php?file=<?php echo $strm[$v]['nom'];?>&rep=<?php echo $rep;?>" alt="">Part <?php echo $k;?>:</a> <?php echo $strm[$v]['duree'];?></td>
                                    </tr>
                                    <?php
                                }
En local, les fichiers affichés correspondent bien aux fichiers trouvés: file_1 affiché est bien file_1 dans le repertoire, etc.
Par contre, sur le serveur de l'hébergeur, je constate que file_1 affiché devient file_4, file_2 => file_3, etc. (pourquoi ?).
Aussi, est-il possible de trier les entrées du tableau de manière à faire correspondre l'affichage aux bons fichiers ? Et comment ?

Merci de vos réponses, si vous avez réussi à comprendre mon souci... 1eye.gif

xpatval
xpatval
Bon, en fait, c'est ma boucle qui ne va pas. Seulement voilà, je nage pour récupérer les valeurs que je souhaite.
Alors je recommence à expliquer:

Mon tableau est construit comme suit:
CODE
$tab = ("cle1" => $data1, "cle2 => $data2, "cle3" => $data3);

j'ai bien entendu plusieurs lignes dans mon tableau, $data1, $data2 et $data3 sont bien renseignés avec les valeurs correspondantes.
Si je boucle comme suit:
CODE
foreach ($tab as $val)
{
    foreach ($val as $val2)
    {
        echo "$val2";
    }
}
j'obtiens cela:
CODE
1ère entrée de mon tableau: $data1 $data2 $data3
2ème entrée de mon tableau: $data1 $data2 $data3
...
Xème entrée de mon tableau: $data1 $data2 $data3

Comment doit-on faire pour pouvoir utiliser seulement $data1 et $data2, par exemple, sans prendre en compte $data3 ?

Merci de votre aide,

xpatval
xpatval
Il faudrait me créer un topic dédié...Je pose les questions, et je me réponds. C'est normal, quand on est con. Et ça rime en plus.

Bon, le problème semble résolu. Bêtement. A force de ne pas utiliser les bonnes fonctionnalités...

Donc, pour ceux que ça intéresse, la boucle énoncé dans mon premier message était tout à fait correcte, à condition d'utiliser la bonne fonction de tri d'un tableau.

Ayant un tableau de la forme clé => valeur, je supposais qu'il fallait utiliser soit un asort, soit un ksort. En fait, le sort suffit amplement, et le tableau est trié comme je le voulais.
La boucle "for" était correct, et avec le bon tri, on y arrive...

Voili voilou.

xpatval
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.