[RESOLU] sort mutliple array

Eléphanteau du PHP | 36 Messages

17 mai 2019, 11:15

Bonjour, j'ai un array qui sort d'un json :

Code : Tout sélectionner

Array ( [multiple] => 1 [options] => Array ( [options0] => Array ( [name] => Boulanger Pâtissier [value] => 1 ) [options1] => Array ( [name] => Boucher Charcutier [value] => 2 ) [options2] => Array ( [name] => Carrossier Peintre [value] => 3 ) [options3] => Array ( [name] => Carreleur [value] => 4 ) [options4] => Array ( [name] => Contôle technique [value] => 5 ) [options5] => Array ( [name] => Couvreur [value] => 6 ) [options6] => Array ( [name] => Frigoriste [value] => 7 ) [options7] => Array ( [name] => Fleuriste [value] => 8 ) [options8] => Array ( [name] => Electricien [value] => 9 ) [options9] => Array ( [name] => Garagiste [value] => 10 ) [options10] => Array ( [name] => ébeniste [value] => 11 ) [options11] => Array ( [name] => Installateur pompe à chaleur [value] => 12 ) [options12] => Array ( [name] => Installateur Aérothermie [value] => 13 ) [options13] => Array ( [name] => Maçonnerie [value] => 14 ) [options14] => Array ( [name] => Maroquinier [value] => 15 ) ) )
Je veux simplement qu'il se retrie par ordre alphabetique sur name tout en gardant sa valeur (que j'ulitilise) derriere pour un select option.
J'avoue être un peu perdu sur toutes les options entre sort, asort, usort etc. Par quoi je commence au juste?

Mammouth du PHP | 1967 Messages

17 mai 2019, 11:25

dans ce cas ci usort est tra seule option je pense

les exemples de la doc sont bien fait pour commencer
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Eléphanteau du PHP | 19 Messages

17 mai 2019, 11:29

dans ton cas je dirais du Ksort.

sur https://www.php.net/manual/fr/function.asort.php
dans les commentaires tu as un utilisateur qui as mis différents exemple d'utilisation.

avec un code du style

Code : Tout sélectionner

unset ($chaine); foreach ($multiple as $value) { $chaine=chaine."<tr><td></td><td></td></tr>"; //pour mettre un séparateur entre les différents multiple unset ($array_temporaire); $array_temporaire=$value; ksort($array_temporaire); foreach ($array_temporaire as $k > $v) { $chaine=chaine."<tr><td>".$k."</td><td>".$v."</td></tr>"; } } echo $chaine;
EX Administrateur infogérence infrastructure web.( chaine de télévision ; et autre site a données sensibles). Très bonne connaissance en : routeur , firewall ,switch , serveur linux ubuntu ,apache , php, mysql (y compris master-slave), et bien d'autre technologies. Pratiquant le php assez regulierement , depuis la version 3.0 ,surtout comme langage de script ,tel que pour redémarrer des services windows via une interface web. Cherchant a se reconvertir ,suite a un Burn-out ,dans le dev php-mysql ,sur paris,RP-ouest.

Eléphanteau du PHP | 36 Messages

18 mai 2019, 09:04

Bonjour, merci pour les réponses, a force de tests, je suis tombé sur cette toute petite fonction qui le fait tout simplement !
un usort comme spols le suggere :

function cmp($a, $b)
{
return strcasecmp($a['name'], $b['name']);
}
usort($myArray, 'cmp');