3 votes

Tri des tableaux par valeur en PHP

J'ai mis à jour ma question, veuillez la vérifier.

J'ai un tableau comme ci-dessous :

$array = [
  0 => [
    "term" => "DECATHLON",
    "count" => 7,
  ],
  1 => [
    "term" => "babywalz",
    "count" => 6,
  ],
  2 => [
    "term" => "Douglas",
    "count" => 3,
  ],
  3 => [
     "term" => "NETFLIX",
     "count" => 2,
  ],
  4 => [
    "term" => "zalando",
    "count" => 2,
  ],
  5 => [
    "term" => "Ernsting's family",
    "count" => 1,
  ],
  6 => [
    "term" => "Spotify",
    "count" => 1,
  ],
  7 => [
    "term" => "eventim",
    "count" => 1,
  ]
];

Je veux trier le tableau comme ceci :

$array = [
        1 => [
            "term" => "babywalz",
            "count" => 6,
        ],
        0 => [
            "term" => "DECATHLON",
            "count" => 7,
        ],
        2 => [
            "term" => "Douglas",
            "count" => 3,
        ],
        5 => [
            "term" => "Ernsting's family",
            "count" => 1,
        ],
        7 => [
            "term" => "eventim",
            "count" => 1,
        ],
        3 => [
            "term" => "NETFLIX",
            "count" => 2,
        ],
        6 => [
            "term" => "Spotify",
            "count" => 1,
        ],
    ];

Toute suggestion sera utile. J'ai utilisé asort(), mais cela ne fonctionne pas comme je le souhaite. J'ai également essayé avec natcasesort().

4voto

Jigar Pancholi Points 537

Merci pour votre aide précieuse. J'ai résolu mon problème comme suit :

usort($value, function($x, $y) { 
    return strcasecmp($x['term'], $y['term']); 
});

1voto

mayersdesign Points 3245

Cela permettra de trier votre tableau de manière non sensible à la casse :

natcasesort($array);

Donc :

natcasesort($array);
echo "Natural order sorting (case-insensitive):\n";
print_r($array);

0voto

Shujaat Points 485

Vous devez utiliser natcasesort Pour en savoir plus aquí

$array = [    'D', 'a', 'Z', 'f'];    
natcasesort ($array);     
print_r($array);

Sortie

Array ( [1] => a [0] => D [3] => f [2] => Z )

0voto

Vous devez utiliser usort con fonction utilisateur personnalisée

usort($array, function($a, $b){ 
    return strnatcmp (strtolower($a["term"]), strtolower($b["term"]));
});

-1voto

Timur Gilauri Points 132

Fonction d'utilisation trier() comme ceci : sort($array).

Voir la documentation : tri de tableaux

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X