login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Shuffle arrays

Offline finduilas - 05/08/2009 00:36
Avatar van finduilasPHP gevorderde Hallo,

Ik heb enkele waarden in een array; en nu wil ik deze shufflen en tegenover elkaar plaatsen.Maar a mag niet tegenover a komen te staan. Ik heb al enkele dingen gedacht maar die lijken allemaal beetje te omslachtig. (oftewel ben ik moe en komt het daardoor )

Dit heb ik al:
  1. $arr = array("a","b","c","d","e","f","g","h"); //
  2. $aantal = count($arr) - 1;
  3. $arr2 = $arr;
  4. shuffle($arr);
  5. for($i = 0;$i <= $aantal;$i++)
  6. {
  7. echo $arr2[$i].'-'.$arr[$i].'<br />';
  8. }


Maar a kan nog tegen a uitkomen enz.. Wat zou het eenvoudigst zijn??

2 antwoorden

Gesponsorde links
Offline djb - 05/08/2009 01:41
Avatar van djb PHP beginner ik heb wat in elkaar gezet:

  1. <?php
  2. function sort_real($array_1,$array_2) {
  3. shuffle($array_2);
  4. $valid = true;
  5. $output = array();
  6. for ($i=0;$i<sizeof($array_1);$i++) {
  7. if ($array_1[$i]==$array_2[$i]) {
  8. $valid = false;
  9. } else {
  10. $output[$array_1[$i]] = $array_2[$i];
  11. }
  12. }
  13. if ($valid) {
  14. return $output;
  15. } else {
  16. return sort_real($array_1,$array_2);
  17. }
  18. }
  19.  
  20. $array = array(1,2,3,4);
  21. $arr = sort_real($array, $array);
  22.  
  23. print_r($arr);
  24. /* aantal outputs:
  25.  * Array ( [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
  26.  * Array ( [1] => 4 [2] => 3 [3] => 1 [4] => 2 )
  27.  * Array ( [1] => 2 [2] => 3 [3] => 4 [4] => 1 )
  28.  */
  29.  
  30. ?>


Als hij niet goed is, dan roept hij zichzelf weer aan.
Met 3 array waardes roept hij zichzelf soms 5 keer opnieuw aan,
Met 4 array waardes roept hij zichzelf soms 3 keer aan.

Er is een theorie dat hij zichzelf soms 100den keren kan aanroepen, dus ik misschien niet heel veilig, maar het lost wel je probleem op denk ik  
Offline finduilas - 05/08/2009 12:06
Avatar van finduilas PHP gevorderde Het is niet om online te zetten maar gewoon om enkele namen random tegenover elkaar te plaatsen. Kga het sebiet eens bekijken 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.204s