Mélange aléatoirement les éléments d'un tableau

  Information

Mélange de manière aléatoire les éléments d'un tableau. Exemple pratique avec l'intégration d'un tableau HTML pour l'affichage des éléments du tableau PHP. Autre exemple pour mélanger un tableau de tableaux.

  code source classé dans  Tableaux - Array

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
 32    
 33    
 34    
 35    
 36    
 37    
 38    
 39    
 40    
 41    
 42    
 43    
 44    
 45    
 46    
 47    
 48    
 49    
 50    
 51    
 52    
 53    
 54    
 55    
 56    
 57    
 58    
 59    
 60    
 61    
 62    
 63    
 64    
 65    
 66    
 67    
 68    
 69    
 70    
 71    
 72    
 73    
 74    
                               
<?php
/*---------------------------------------------------------------*/
/*
    Titre : Mélange aléatoirement les éléments d'un tableau                                                           
                                                                                                                          
    URL   : https://phpsources.net/code_s.php?id=218
    Date édition     : 07 Fév 2007                                                                                        
    Date mise à jour : 12 Aout 2019                                                                                      
    Rapport de la maj:                                                                                                    
    - fonctionnement du code vérifié                                                                                    
    - maintenance du code                                                                                                 
*/
/*---------------------------------------------------------------*/

    // Code de base  
    $nombres range(1,20);
    srand((float)microtime()*1000000);
    shuffle($nombres);
    foreach ($nombres as $nombre) {
       echo "$nombre ";
    }
?>
    
    Exemple pratique :
    Ce code affiche les éléments du tableau de manière aléatoire.
    De la même manière que le code ci dessus. Cette exemple pratique à la
    particularité d'afficher les éléments dans un tableau HTML.
    Vous pouvez paramétrer le nombre de colonnes que vous souhaitez voir
    en sortie écran.
   
<?php 
  
     $tablo array('Paris',
                    'Moscou',
                    'Berlin',
                    'France',
                    'Russie',
                    'Allemagne');
     srand((float)microtime()*1000000);
     shuffle($tablo);
     $nbcol 2;  // mettez le nombre de colonnes dont vous avez besoin
      echo '<table border="1">';
      $nb=count($tablo); 
      for($i=0;$i<$nb;$i++)
      { 
      //les valeurs à afficher
      $valeur1=$tablo[$i]; 
      if($i%$nbcol==0)
       echo '<tr>';
        echo '<td>',$valeur1,'</td>';
      if($i%$nbcol==($nbcol-1))
       echo '</tr>';
      }
      echo '</table>'
?>
  
 La toute dernière fonction c'est comment mélanger un tableau de tableau. Pour
 faire cela nous allons mélanger les clés du tableau et nous allons faire une
 relecture du tableau à partir du nouvelle ordre des clés. Nous stockerons le
 résultat dans un tableau de transit et nous retournerons le résultat dans la
 fonction.
    
<?php
  
     function melange($array) {
      $val array();
      $keys array_keys($array);
      shuffle($keys);
         foreach($keys as $key$val[] = $array[$key];
           return $val;
         }
?>

Exemple :

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
                                
<?php
     $new_tab melange($tablo); ?>
     <pre> <?php print_r($new_tab); ?> </pre>
      
     Affiche (exemple aléatoire)
      
     Array
    (
        [0] => Paris
        [1] => Berlin
        [2] => Allemagne
        [3] => France
        [4] => Russie
        [5] => Moscou
    )

          Fonctions du code - Doc officielle PHP

   php.net   Description Versions PHP OUTIL
   array Crée un tableau PHP 4, PHP 5, PHP 7
   array_keys Retourne toutes les clés d'un tableau PHP 4, PHP 5, PHP 7
   count Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet PHP 4, PHP 5, PHP 7
   echo Affiche une chaîne de caractères PHP 4, PHP 5, PHP 7
   microtime Retourne le timestamp UNIX actuel avec les microsecondes PHP 4, PHP 5, PHP 7
   print_r Affiche des informations lisibles pour une variable PHP 4, PHP 5, PHP 7
   range Crée un tableau contenant un intervalle d'éléments PHP 4, PHP 5, PHP 7
   return Retourne le controle du programme au module appelant. PHP 4, PHP 5, PHP 7
   shuffle Mélange les éléments d'un tableau PHP 4, PHP 5, PHP 7
   srand Initialise le générateur de nombres aléatoires PHP 4, PHP 5, PHP 7

  • Merci de signaler tout problème rencontré avec ce code

Nous vous encourageons à contribuer à l'utilisation de PHP en ajoutant vos remarques

[3]

  • avatar

    Invité

    21 Avril 2009 à 00:20

    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' ??

  • avatar

    Forty

    21 Avril 2009 à 15:52

    Je viens de tester chez moi et pas d'erreur.

  • avatar

    Invité

    10 Nov 2009 à 02:01

     Merci pour la fonction mélange.

Suivez PHP Sources sur Twitter !

PHP débutant et initié 50 Tutoriel

Présentation de PHP

  Derniers scripts PHP

SPIP 3.2.5

logo SPIP
Langue langue fr
Date  hier
Taille 11 Mo
Catégorie CMS

ZenTao 11.6.2

logo ZenTao
Langue langue fr
Date 16 Sept
Taille 7 Mo
Catégorie Divers

EspoCRM 5.6.13

logo EspoCRM
Langue langue us
Date 13 Sept
Taille 40 Mo
Catégorie CRM

PhpList 3.4.6

logo phpList
Langue langue us
Date 12 Sept
Taille 28 Mo
Catégorie Email-Emailing

  07 Fév 2007

Information sur les mises à jour

Dernière mise à jour :

    12 Aout 2019
    fonctionnement du code vérifié
    maintenance du code

19 618 Vues
Compatibilité
PHP 5 et 7+