[PHP] Trier un tableau par valeur numérique descendante
Publié le 07/02/2020 • Actualisé le 07/02/2020
Dans ce bout de code, nous allons voir comment trier un tableau PHP par valeur numérique descendante. C'est le genre de code que j'oublie parfois et ou j'ai besoin d'aller regarder la documentation pour voir comment faire. Je pensais d'abord qu'il fallait passer le flag SORT_NUMERIC
à la fonction arsort
mais ce n'est pas nécessaire si les valeurs sont des nombres correctement formatés.
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
/**
* J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
* Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
* ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Les services sont injectés dans le constructeur du contrôleur principal.
*/
trait Snippet76Trait
{
public function snippet76(): void
{
$myArray = [
'orange' => 3,
'lemon' => 1,
'banana' => 5,
'kiwi' => 11,
'apple' => 2,
];
print_r($myArray);
arsort($myArray);
print_r($myArray);
// That's it! 😁
}
}
Exécuter le snippet ≪ this.showUnitTest ? this.trans.hide_unit_test : this.trans.show_unit_test ≫ Plus sur Stackoverflow Lire la doc Snippet aléatoire
<?php
declare(strict_types=1);
namespace App\Tests\Integration\Controller\Snippets;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
/**
* @see Snippet76Trait
*/
final class Snippet76Test extends KernelTestCase
{
/**
* @see Snippet76Trait::snippet76
*/
public function testSnippet76(): void
{
$myArray = [
'orange' => 3,
'lemon' => 1,
'banana' => 5,
'kiwi' => 11,
'apple' => 2,
];
arsort($myArray);
$values = array_values($myArray);
self::assertSame(11, $values[0]);
self::assertSame(1, $values[\count($myArray) - 1]);
}
}
A vous de jouer !
Ces articles vous ont été utiles ? Vous pouvez m'aider à votre tour de plusieurs manières : (cliquez sur le lien "reply" dans à droite pour me contacter )
- Me remonter des erreurs ou typos.
- Me remonter des choses qui pourraient être améliorées.
- Aimez et repostez !
- Suivez moi sur Bluesky 🦋
- Inscrivez-vous au flux RSS.
- Cliquez sur les boutons Plus sur Stackoverflow pour me faire gagner des badges "annonceur" 🏅.
Merci et à très bientôt sur Strangebuzz ! 😉