Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: MarvinLeRouge le le 24-05-2005 a 02:01:49

Titre: usort et objets
Posté par: MarvinLeRouge le le 24-05-2005 a 02:01:49

Salut,

J'ai récupéré un paquet de données provenant d'une base de données dans un tableau : une ligne de données récupérée par mysql_fetch_assoc directement ajoutée au tableau en question. J'ai donc un tableau dont chaque ligne est un tableau associatif.
Les clés de ces lignes contiennent notamment date, theme et titre.
Je voudrais pouvoir trier l'ensemble du tableau d'un coup, par (date décroissante, titre croissant), puis par (theme croissant, titre croissant).
J'ai regardé du côté des fonctions de tri de tableaux, mais l'utilisation de array_multisort dans ce cas ne me parait pas évidente du tout.
Et usort ne semble pas fonctionner quand la fonction de tri et le tableau cible font partie d'un objet.

Quelqu'un pourrait m'aider, svp ?

Merci

Code pour la création du tableau

Code:
$tabData = array ();
while ($lineData = mysql_fetch_assoc ($resultSql))
{
array_push ($tabData, $lineData);
}


Et démonstration du problème avec usort dans un objet
Dans un objet

Code:
class test
{
var $tabTest = array ();

function tri ($x, $y)
{
$result = ($x == $y ? 0 : ($x > $y ? -1 : 1));
return ($result);
}

function test ()
{
$this->tabTest = range (0, 9);
print_r ($this->tabTest);
usort ($this->tabTest, "tri");
print_r ($this->tabTest);
}
}
new test ();


Hors d'un objet

Code:
function tri ($x, $y)
{
$result = ($x == $y ? 0 : ($x > $y ? -1 : 1));
return ($result);
}

$tabTest = array ();
$tabTest = range (15, 25);
print_r ($tabTest);
usort ($tabTest, "tri");
print_r ($tabTest);

Titre: Re:usort et objets
Posté par: ZeTrum le le 25-05-2005 a 10:43:20

quand tu utilises une méthode pour trier, tu dois faire ça :

Code:
usort ($this->tabTest, array('test, 'tri'));



Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.