Tri sur 2 colonnes

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 : Tri sur 2 colonnes

Re: Tri sur 2 colonnes

par @rthur » 28 oct. 2018, 19:50

Si ton tableau PHP est véritablement sous la forme de ton exemple où l'index 2 est égal à la clé de 1er niveau, alors je pense que tu peux faire un tableau beaucoup plus simple en utilisant les clés
<?php
$tableau=array(
	1 => 'Dupont', 
	2 => 'Robert', 
	3 => 'Durand', 
	4 => 'Toto', 
	5 => 'Martine', 
	6 => 'Delphine', 
	7 => 'Caroline');
Et ensuite :
- Pour les avoir dans l'ordre d'ID (=clé du tableau) : https://php.net/ksort
- Pour les avoir dans l'ordre inverse d'ID : https://php.net/krsort
- Pour les avoir par ordre alphabétique (=valeur) : https://php.net/sort
- Pour les avoir par ordre alphabétique inverse : https://php.net/rsort


Si tu veux faire des tris sur des tableaux plus complexes, il y a un très bon exemple dans les commentaires de la doc, ici :
http://php.net/manual/fr/function.sort.php#99419

Tri sur 2 colonnes

par ga87 » 27 oct. 2018, 16:10

Bonjour,
Voici un code simple :
<?php
	$nb_ligne=7;
    $tableau[1][1] = "Dupont";
    $tableau[1][2] = 1;
	$tableau[2][1] = "Robert";
    $tableau[2][2] = 2;
	$tableau[3][1] = "Durand";
    $tableau[3][2] = 3;
	$tableau[4][1] = "Toto";
    $tableau[4][2] = 4;
	$tableau[5][1] = "Martine";
    $tableau[5][2] = 5;
	$tableau[6][1] = "Delphine";
    $tableau[6][2] = 6;
	$tableau[7][1] = "Caroline";
    $tableau[7][2] = 7;	
	
	//------------------Tri inverse de 7 à 1
	//RSORT($tableau);
	//array_multisort($tableau, SORT_ASC, SORT_STRING,
     //           $tableau, SORT_NUMERIC, SORT_DESC);
	
	//-------Affiche
	echo"<center><table border width='50%'>";
		for($i=1;$i<=$nb_ligne;$i++)
		{
    		echo"<tr>
				<td width='50%' align='center'>".$tableau[$i][1]."</td>
				<td width='50%' align='center'>".$tableau[$i][2]."</td>
			</tr>";	
		}
	echo"</table></center><br>";
?>
Je n'arrive pas à trier sur la deuxième colonne en ordre décroissant.
Merci
Guy