Classement d'un tableau (clés ET valeurs)

Classement d'un tableau (clés ET valeurs) - PHP - Programmation

Marsh Posté le 26-10-2006 à 21:50:14    

Salut à tous,
 
je vous expose ma petite question  :)  
 
 
Dans la doc PHP ( http://fr.php.net/manual/fr/function.natcasesort.php ), on trouve :
 
 
Exemple 1. Exemple avec natcasesort()

Code :
  1. <?php
  2. $array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png',
  3. 'img2.png', 'img1.png', 'IMG3.png');
  4. sort($array1);
  5. echo "Standard sorting\n";
  6. print_r($array1);
  7. natcasesort($array2);
  8. echo "\nNatural order sorting (case-insensitive)\n";
  9. print_r($array2);
  10. ?>


 
L'exemple ci-dessus va afficher :

Code :
  1. Standard sorting
  2. Array
  3. (
  4.     [0] => IMG0.png
  5.     [1] => IMG3.png
  6.     [2] => img1.png
  7.     [3] => img10.png
  8.     [4] => img12.png
  9.     [5] => img2.png
  10. )
  11. Natural order sorting (case-insensitive)
  12. Array
  13. (
  14.     [0] => IMG0.png
  15.     [4] => img1.png
  16.     [3] => img2.png
  17.     [5] => IMG3.png
  18.     [2] => img10.png
  19.     [1] => img12.png
  20. )


 
 
 
Moi au final j'aimerais avoir:
 

Code :
  1. Array
  2. (
  3.     [0] => IMG0.png
  4.     [1] => img1.png
  5.     [2] => img2.png
  6.     [3] => IMG3.png
  7.     [4] => img10.png
  8.     [5] => img12.png
  9. )


 
C'est-à-dire, trier les valeurs dans l'ordre naturel et trier également les clés...? Il y a une fonction pour ça?
 
 
Merci d'avance  :D

Reply

Marsh Posté le 26-10-2006 à 21:50:14   

Reply

Marsh Posté le 27-10-2006 à 01:08:40    

Tu veux dire réinitialiser les clés ? En fait comme les clés normalement sont associées avec une valeur, c'est normal d'obtenir ce que t'obtient. Maintenant ce que tu veux faire, c'est plutôt les réinitaliser, ce qui est possible avec array_values :

natcasesort($array2);
$array2 = array_values($array2);

Reply

Marsh Posté le 27-10-2006 à 03:20:27    

Ha oui, c'est exactement ça, je me disais bien que j'étais passé à coté d'une fonction utile [:canaille]
 
Merci beaucoup  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed