1
votes

J'ai besoin de trier les données des objets par ordre alphabétique

J'ai une classe Chaussures qui se compose de l'identifiant, de la marque, du prix et de la taille. De plus, j'ai déjà une base de données SQL à partir de laquelle je récupère les données pour les chaussures.

Je crée une classe de vue Shoes qui a 6 colonnes. 4 mentionnés ci-dessus et 2 supplémentaires avec le montant disponible de la chaussure à gauche, et un avec le bouton "acheter".

Je voudrais que le tableau dans les view_shoes montre les chaussures dans l'ordre alphabétique de la marque. Pour que j'aie

public static function shoes() {
    $query = self::execute("SELECT * FROM shoes", array());
    $data = $query->fetchAll();
    $shoes = [];
    foreach ($data as $row) {
        $shoes[] = new shoe($row['id'], $row["brand"], $row["price"], $row["size"]);
    }
    return $shoes;
}

Plutôt que

1.Reebok 
2.Puma 
3.Adidas 
4. Geox

, je n'ai pas trouvé beaucoup d'informations sur la façon de le faire. J'ai trouvé des fonctions comme usort , asort mais je ne sais pas comment les mettre en œuvre.

Voici la fonction pour les chaussures. p>

1.Adidas 
2.Geox 
3.Puma 
4.Reebok.


0 commentaires

3 Réponses :


0
votes

Rédigez votre comparateur personnalisé pour le tri.

usort($shoes,function ($a,$b){
    return strcmp($a->brand,$b->brand);
    //return strcmp($a['brand'],$b['brand']);
})


1 commentaires

Chaque élément de $ shoes sera un objet de la classe shoe , pas nécessairement sur lequel vous pouvez utiliser des comparaisons de tableaux. Vous devrez peut-être récupérer la propriété de marque de l'objet.



2
votes

Utilisez ORDER BY dans votre requête, dans la colonne brand .

$query = self::execute("SELECT * 
                         FROM shoes 
                         ORDER BY brand ASC"
                       , array());


0 commentaires

1
votes

Vous pouvez modifier votre requête SQL pour l'appliquer au tri

sort($shoes);

Remplacez-la par

SELECT * FROM shoes ORDER BY brand ASC

OU vous pouvez utiliser sort () sur $ shoes si $ shoes est un tableau

SELECT * FROM shoes


1 commentaires

$ shoes sera un tableau d'objets. Vous devez trier sur la propriété brand de cet objet.