Trier un tableau d'objets en fonction d'une propriété spécifique
P粉426780515
P粉426780515 2023-08-21 15:57:31
0
2
526
<p>Comment puis-je trier ce tableau d'objets par un champ tel que <code>name</code> ou <code>count</code> ? </p> <pre class="brush:php;toolbar:false;">Array ( [0] => Objet stdClass ( [ID] => 1 [nom] => [compte] => 420 ) [1] => Objet stdClass ( [ID] => [nom] => [compte] => ) [2] => Objet stdClass ( [ID] => 3 [nom] => [compte] => 4354 ) ....</pré> <p><br /></p>
P粉426780515
P粉426780515

répondre à tous(2)
P粉285587590

C'est une meilleure façon d'utiliser les fermetures

usort($your_data, function($a, $b)
{
    return strcmp($a->name, $b->name);
});

Veuillez noter que cela ne figure pas dans la documentation PHP, mais si vous utilisez la version 5.3+, les fermetures sont prises en charge et vous pouvez fournir des paramètres appelables.

P粉020085599

En utilisant usort, voici un exemple adapté du manuel :

function cmp($a, $b) {
    return strcmp($a->name, $b->name);
}

usort($your_data, "cmp");

Vous pouvez également utiliser n'importe quel callable comme deuxième argument. Voici quelques exemples :

  • Utilisez des fonctions anonymes (à partir de PHP 5.3)

    usort($your_data, function($a, $b) {return strcmp($a->name, $b->name);});
  • Utilisé à l'intérieur de la classe

    usort($your_data, array($this, "cmp")); // "cmp"应该是类中的一个方法
  • Utilisez les fonctions fléchées (à partir de PHP 7.4)

    usort($your_data, fn($a, $b) => strcmp($a->name, $b->name));

De plus, si vous souhaitez comparer des valeurs numériques, fn($a, $b) => $a->count - $b->count comme fonction de "comparaison" devrait résoudre le problème, Alternativement, si vous souhaitez faire la même chose d'une autre manière, en commençant par PHP 7, vous pouvez utiliser Opérateur de vaisseau spatial fn($a, $b) => $a->count - $b->count作为“比较”函数应该可以解决问题,或者,如果你想以另一种方式做同样的事情,从PHP 7开始你可以使用太空船操作符,像这样:fn($a, $b) => $a->count <=> $b->count, comme ceci : fn($a, $b) => $a->count <=> $ b ->compte.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!