OVH Cloud OVH Cloud

galere de tri

4 réponses
Avatar
Etienne SOBOLE
Salut.

j'ai un tableau d'objet...
j'aimerai trier le tableau (tout en gardant les clés, c'est donc une table
de hash)
selon un attribut de l'objet.

Est ce possible et si oui comment?
merci.

PS :
faut que je précise, que si je pouvais eviter de passer par un autre tableau
cela m'arrangerai...
En fait je cherche s'il y a un moyen simple de faire ca en PHP !

Etienne

4 réponses

Avatar
bruno modulix
Etienne SOBOLE wrote:

j'ai un tableau d'objet...
j'aimerai trier le tableau (tout en gardant les clés, c'est donc une table
de hash) selon un attribut de l'objet.


Regarde du côté de usort(), uasort() et uksort()

HTH,
--
bruno desthuilliers
python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for
p in ''.split('@')])"

Avatar
Etienne SOBOLE
Regarde du côté de usort(), uasort() et uksort()


A oui merci
uasort va peut etre me sauve la vie...
je teste

Etienne

Avatar
Hughes Monget
"Etienne SOBOLE" a écrit dans le message de
news:420c9a93$0$8187$
Salut.

j'ai un tableau d'objet...
j'aimerai trier le tableau (tout en gardant les clés, c'est donc une table
de hash)
selon un attribut de l'objet.

Est ce possible et si oui comment?
merci.

PS :
faut que je précise, que si je pouvais eviter de passer par un autre
tableau

cela m'arrangerai...
En fait je cherche s'il y a un moyen simple de faire ca en PHP !

Etienne


Bonjour,

Voici une solution:

<?php

function callback_trier_stock($obj_left, $obj_right)
{
return strcmp($obj_left->get_attribut(), $obj_right->get_attribut());
}

class Stock
{
public function __construct($str_attribut)
{
$this->m_str_attribut = $str_attribut;
}

public function get_attribut()
{
return $this->m_str_attribut;
}

protected $m_str_attribut;
}

$arr_liste_obj_stocks = Array();

$arr_liste_obj_stocks['abc'] = new Stock('tutu');
$arr_liste_obj_stocks['def'] = new Stock('tata');
$arr_liste_obj_stocks['ghi'] = new Stock('titi');
$arr_liste_obj_stocks['jkl'] = new Stock('toto');

echo('<pre>NON TRIE' . "n");
var_dump($arr_liste_obj_stocks);
echo('</pre>');

uasort($arr_liste_obj_stocks, 'callback_trier_stock');

echo('<pre>TRIE' . "n");
var_dump($arr_liste_obj_stocks);
echo('</pre>');

?>


HTH


--
hughes monget

Avatar
Etienne SOBOLE
Bonjour,
Voici une solution:


Merci.
Je pouvais pas espéré mieux ;)
c'est tres sympa.

Etienne