[PHP] Random iets doen bij array n maal

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 18:49

HaTe

haat niet

Topicstarter
Ik heb een array, en de waarden van die array laat ik zien op het scherm. Nu heb ik een getal, bijvoorbeeld 15. En nu moeten bij 15 random indexen van de array iets geëchood worden.

Nu kan ik wel random bij het uitlezen dat gene echoën totdat hij dat 15 keer heeft gedaan, maar als de array voortijdig is afgelopen, dan heeft hij dat nog niet 15 keer gedaan.

De array mag niet van volgorde veranderd worden.

Hoe kan ik dit doen?

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • Tofu
  • Registratie: Maart 2003
  • Laatst online: 05-10-2024
HaTe schreef op woensdag 18 februari 2009 @ 17:25:
Ik heb een array, en de waarden van die array laat ik zien op het scherm. Nu heb ik een getal, bijvoorbeeld 15. En nu moeten bij 15 random indexen van de array iets geëchood worden.

Nu kan ik wel random bij het uitlezen dat gene echoën totdat hij dat 15 keer heeft gedaan, maar als de array voortijdig is afgelopen, dan heeft hij dat nog niet 15 keer gedaan.

De array mag niet van volgorde veranderd worden.

Hoe kan ik dit doen?
Kopie van de array maken en deze schudden. Eventueel elementen toevoegen tot 15. Sequentieel uitlezen en voila.

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 18:49

HaTe

haat niet

Topicstarter
Tofu schreef op woensdag 18 februari 2009 @ 17:28:
[...]
Kopie van de array maken en deze schudden. Eventueel elementen toevoegen tot 15. Sequentieel uitlezen en voila.
Dus als ik het goed begrijp:
2 arrays, even lang, bij de ene voeg je 15 keer iets toe en gaat dan schudden. En daarna weer samenvoegen.

Dat kan ik wel proberen :)

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • Rigi
  • Registratie: September 2001
  • Laatst online: 30-11-2018
Ok, dus je wilt een random selectie uit je array hebben, maar wel op volgorde?
dus een array 1..100 zou je willen 1 15 30 90 maar niet 1 90 30 15?
In dat geval zou ik een soort mask opstellen waar je een random indices 'aan' zet.

Als je gewoon een random volgorde mag doen kan je zoiets doen:
PHP:
1
2
3
$i += $randomGetal;
$i %= count($array);
echo $array[$i];

edit: Maar dan wel kijken of je niet al bij $i geweest bent (dan kan je natuurlijk wel naar $i++)

[ Voor 11% gewijzigd door Rigi op 18-02-2009 17:34 ]


Acties:
  • 0 Henk 'm!

  • stereohead
  • Registratie: April 2006
  • Laatst online: 21:48
Snap niet precies wat je bedoeld maar kijk eens naar deze functies:

array_rand()
shuffle()

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 18:49

HaTe

haat niet

Topicstarter
Oke, het is gelukt :) thnx

Eerst dit:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
$follow_array = array();
        $aantal_follow = 0;
        for($i=0; $i < $aantal_links; $i++)
        {
            if($aantal_follow < $intindex)
            {
                $follow_array[] = TRUE;
            }else{
                $follow_array[] = FALSE;
            }
            $aantal_follow++;
        }
        shuffle($follow_array);


En dan bij het uitlezen:
PHP:
1
2
3
4
5
6
if($follow_array[$nummer-1])
            {
                $follow = "rel='no-follow'";
            }else{
                $follow = "";
            }

[ Voor 89% gewijzigd door HaTe op 18-02-2009 18:16 ]

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • Online-Gamer
  • Registratie: Juni 2005
  • Laatst online: 25-10-2023
HaTe schreef op woensdag 18 februari 2009 @ 17:55:
Oke, het is gelukt :) thnx

Eerst dit:
-knip-

En dan bij het uitlezen:
-knip-
Let er wel op dat het rel="nofollow" is, en niet rel="no-follow" :)
(correct me if i'm wrong :))

Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 18:49

HaTe

haat niet

Topicstarter
Online-Gamer schreef op woensdag 18 februari 2009 @ 18:28:
[...]

Let er wel op dat het rel="nofollow" is, en niet rel="no-follow" :)
(correct me if i'm wrong :))
You are right :) thnx

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
En nu het opgelost moet ik toch nog even de Echte Vraag stellen: Wat is het nut van een random no-follow?

{signature}


Acties:
  • 0 Henk 'm!

  • HaTe
  • Registratie: Mei 2007
  • Laatst online: 18:49

HaTe

haat niet

Topicstarter
Dit is voor een linkpartner systeem. Ik heb gelezen dat Google te veel links afkeurt (bron). Lees het eerste stukje maar eens. Daarom heb ik dit er in gebouwd. Random omdat anders andere sites benadeelt worden.

WP: ME PUHZ-SW75YAA + ERST30D-VM2ED | Solar: 17x TSM-340-DE06M.08 (5780Wp ~6200kWh), Azimuth 179°, Hellingshoek: 34° | PC specs

Pagina: 1