Traitement des données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Traitement des données

par titerm » 15 févr. 2007, 19:20

Tu as ce résultats car je suppose que $inverse est a true

Si tu le met a false, les index seront mis a jour et tu aura des index croissant malgré un parcour inverse.

Si tu préserve les index, ce n'est que le parcours du tableau qui est altéré, le parcours correspond en gros a l'ordre d'insertion.

Traitement des données

par ramy » 15 févr. 2007, 16:00

Bonjour,
j'ai quelques difficultés pour trier un array par ses index... J'utilise donc la fonction ksort() - Je dois également pour inverser cette ordre (les premiers deviennent les derniers); Ce que je réalise avec la fonction krsort soit :

Code : Tout sélectionner

($inverse ? ksort($array) : krsort($array)); // $inverse est une booléenne
.
Si cette méthode de trie est efficace pour les chaines de caractères, elle l'est beaucoup moins pour les nombres : A ce titre, je décide d'utiliser la fonction natcasesort() mais le problème est qu'il n'existe pas de fonction 'rnatcasesort()'... Qu'à cela ne tienne, je vais exécuter la fonction systématiquement et inverser l'array au besoin soit :

Code : Tout sélectionner

natcasesort($array); array_reverse($array,$inverse);
Oui mais cette dernière fonction est assez atypique :

Code : Tout sélectionner

Array ( [0] => Array ( [0] => rouge [1] => vert ) [1] => 4 [2] => php ) // devient Array ( [2] => Array ( [0] => rouge [1] => vert ) [1] => 4 [0] => php )
Et foreach qui est utilisé pour afficher le résultat ne voit pas de différence entre ces deux arrays... De plus, une boucle for($i=0;$i<count($array);$i++) ne fonctionne pas puisque les index sont prédéfinît et globalement très variable.

Finalement, existe-t-il une solution à ce problème et surtout la connaissez-vous?