Sélection aléatoire de clés d'un tableau avec PHP

Publié le 13/09/2023 • Actualisé le 13/09/2023


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Dans ce bout de code, nous voyons comment sélectionner des clés aléatoires d'un tableau avec PHP. La fonction pickArrayKeys() est très commode et au contraire de la plupart des autres fonctions de la classe randomizer, elle ne possède pas d'équivalent avant PHP 8.2. Le second argument permet de spécifier le nombre de clés à retourner. Si celui-ci est supérieur au nombre d'éléments du tableau, alors une ValueError est retournée.


<?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 Snippet273Trait
{
    public function snippet273(): void
    {
        $r = new \Random\Randomizer();
        $array = [
            'a' => 'a-',
            'b' => 'b-',
            'c' => 'c-',
            'd' => 'd-',
            'foo' => 'foofoo',
            'bar' => 'barbar',
        ];

        var_dump($array);
        echo PHP_EOL;
        var_dump($r->pickArrayKeys($array, 2));

        // That's it! 😁
    }
}

 Exécuter le snippet  Plus sur Stackoverflow   Lire la doc  Snippet aléatoire

  Travaillez avec moi !