[PHP] trier 2 tableaux

Olivier Duffez (admin)
Membre du personnel
J'ai 2 tableaux, par exemple tab_prenoms et tab_noms
ils sont liés, dans le sens où tab_prenoms[3] est le prenom de l'utilisateur dont le nom est tab_noms[3]
je souhaite trier le tableau tab_noms et reporter les permutations du tri dans l'autre tableau (pour qu'ils restent synchronisés)
qui a une idée ?

PS: moi aussi je m'autorise des hors-sujets :?
 
Olivier Duffez (admin)
Membre du personnel
je continue seul...
je pensais pouvoir créer un nouveau tableau :
Code:
$tab = array( "prenom" => $tab_prenoms, "nom" => $tab_noms);
puis trier ce tableau avec asort(), mais ça ne va pas...
bon tant pis...
 
WRInaute discret
je crois que array_multisort est la fonction recherchée... PHP4

http:**fr.php.net/manual/fr/function.array-multisort.php

par exemple:

Code:
 $tableau_a=array('z','k','y','l','c');
 $tableau_b=array(1,2,3,4,5);

 // afficher l'ordre avant
 for($i=0;$i<count($tableau_a);$i++) {
  echo '<br>'.$tableau_a[$i].'='.$tableau_b[$i];
 }
 echo '<br>';

 // Trier selon le premier tableau en ordre croissant
 array_multisort($tableau_a,SORT_ASC,$tableau_b);

 // afficher l'ordre après
 for($i=0;$i<count($tableau_a);$i++) {
  echo '<br>'.$tableau_a[$i].'='.$tableau_b[$i];
 }

Dans l'exemple, le chiffre 5 deviendra le premier élément de tableau_b parceque la lettre 'c' deveindra le premier élément de tableau_a.

Tisha
 
WRInaute impliqué
Question con : pourquoi utiliser 2 tableaux alors que le plus simple serait de faire :

$tab[3]['prenom'] = 'machin';
$tab[3]['nom'] = 'machine';

ça serait largement plus simple à manipuler et à utiliser par la suite non ?
 
Olivier Duffez (admin)
Membre du personnel
en fait les tableaux sont créés indépendamment, donc il y en avait 2 séparés.
de toute façon je vais finalement gérer tout ça en base de données, ce sera mieux pour différents facteurs.
merci pour vos réponses en tout cas.
 
Discussions similaires
Haut