[PHP] Trier un tableau

Ara
Invité n'ayant pas de compte PHPfrance

11 juil. 2014, 20:20

Bonjour à toutes et à tous :)

Je poste aujourd'hui sur ce forum, car je souhaite faire quelque chose qui me semble un peu complexe à mettre en place (pas très propre).
J'ai un tableau $tab contenant des sous-tableaux (qui contiennent des clés et leur valeur associée).
En somme j'ai quelque chose comme ça :
Array
(
    [0] => Array
        (
            [A] => 31.2
            [B] => 18.12
            [C] => 2.79
        )
 
    [1] => Array
        (
            [A] => 64.12
            [B] => 9.94
            [C] => 0.13
        )

    [2] => Array
        (
            [A] => 64.12
            [B] => 9.94
            [C] => 3.82
        )
)
Je cherche à trier $tab selon la clé C décroissante de ses sous-tableaux pour obtenir quelque chose comme ça :

Array
(
    [0] => Array
        (
            [A] => 64.12
            [B] => 9.94
            [C] => 3.82
        )

    [1] => Array
        (
            [A] => 31.2
            [B] => 18.12
            [C] => 2.79
        )
 
    [2] => Array
        (
            [A] => 64.12
            [B] => 9.94
            [C] => 0.13
        )
)
J'ai pensé à array_multisort(), mais ça ne semble pas correspondre à ce que je veux faire... #-o

Auriez-vous une idée ?

Je vous remercie d'avance de vos suggestions ! :)

Invité
Invité n'ayant pas de compte PHPfrance

11 juil. 2014, 20:24

Euh je me suis trompé en recopiant les tableaux...
INITIAL
Array
(
    [0] => Array
        (
            [A] => 29.32
            [B] => 21.12
            [C] => 0.13
        )

    [1] => Array
        (
            [A] => 64.12
            [B] => 9.94
            [C] => 3.82
        )

    [2] => Array
        (
            [A] => 31.2
            [B] => 18.12
            [C] => 2.79
        )
)
APRÈS TRAITEMENT
Array
(
    [0] => Array
        (
            [A] => 64.12
            [B] => 9.94
            [C] => 3.82
        )

    [1] => Array
        (
            [A] => 31.2
            [B] => 18.12
            [C] => 2.79
        )
 
    [2] => Array
        (
            [A] => 29.32
            [B] => 21.12
            [C] => 0.13
        )
)

Mammouth du PHP | 1339 Messages

11 juil. 2014, 21:25

<?php

$a = array (
    0 => array
        (
            'A' => 31.2,
            'B' => 18.12,
            'C' => 2.79
        ),

    1 => array
        (
            'A' => 64.12,
            'B' => 9.94,
            'C' => 0.13
        ),

    2 => array
        (
            'A' => 64.12,
            'B' => 9.94,
            'C' => 3.82
        )
);

foreach($a as $k => $v) {
	foreach($v as $key => $val) {
		$sort[$k] = $val;
	}
}

arsort($sort); // Tu récupères l'ordre des tableaux.

foreach($sort as $k => $v) {
	foreach($a[$k] as $key => $val) {
		echo $key.' '.$val.'<br />';
	}
}


?>
 
Je fais comme a moi ...
Bon sinon tu me fais un message privé et on se fait un TeamViewer