Aller au contenu

tri dans un tableau


Sujets conseillés

Posté

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.

						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 .

								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:

xpatval

Posté

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:

$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:

foreach ($tab as $val) 
{
foreach ($val as $val2)
{
echo "$val2";
}
}

j'obtiens cela:

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

Posté

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

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...