Rand() function met strings

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jerry php

Jerry php

02/10/2012 15:27:28
Quote Anchor link
Beste php'ers,

ik ben opzoek naar een functie zoals rand() maar dan een functie waarbij ik bijvoorbeeld 3 zinnen heb, en dat hij dan willekeurig 1 van die zinnen op het scherm schrijft. Waarschijnlijk is het heel makkelijk, maar ik er niet op komen..

groet jerry
 
PHP hulp

PHP hulp

23/12/2024 19:08:47
 
Nick Dijkstra

Nick Dijkstra

02/10/2012 15:32:58
Quote Anchor link
Dat kan je bijv. zo doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$zin
= array();
$zin[] = 'Dit is de eerste zin';
$zin[] = 'Dit is de tweede zin';
$zin[] = 'En zo verder en verder...';
shuffle($zin);
echo $zin[0];
?>
 
Jerry php

Jerry php

02/10/2012 15:34:31
Quote Anchor link
Dat is toch dat de shuffle() maak de volgorde anders, dus dan krijg je (soms) een andere zin op nummer [0] en die echot hij dan. maar is er nog een andere manier, want een jaar geleden heb ik dat ook uitgezocht, maar weet het niet meer. En toen heb ik geloof ik iets anders gebruikt, kan dat?
 
Nick Dijkstra

Nick Dijkstra

02/10/2012 15:39:27
Quote Anchor link
Dit zoek je toch? Elke keer als je de pagina refresht dan echot hij een andere zin. Er zijn vast nog andere manieren, het was ook een voorbeeld.
 
Jerry php

Jerry php

02/10/2012 15:40:41
Quote Anchor link
Ja dit bedoel ik ook, maar ik heb nu die zinnen overgenomen, en de zinnen verandert. in één zin heb ik een € euroteken staan, maar hij geeft dan een driehoekje met vraagteken erin op het scherm, kan php geen eurotekens schrijven uit een array? Of wat?
 
Reshad F

Reshad F

02/10/2012 15:41:20
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

$characters
= array(
"A","B","C","D","E","F","G","H","J","K","L","M",
"N","P","Q","R","S","T","U","V","W","X","Y","Z",
"1","2","3","4","5","6","7","8","9");

$keys = array();

while(count($keys) < 3) {
    $x = mt_rand(0, count($characters)-1);
    if(!in_array($x, $keys)) {
       $keys[] = $x;
    }
}


foreach($keys as $key){
   $random_chars .= $characters[$key];
}

echo $random_chars;
?>


principe hierboven is hetzelfde alleen dan met jou zinnen in de array.. eventueel zou je de while kunnen veranderen in een if/else statement
Gewijzigd op 02/10/2012 15:42:04 door Reshad F
 
Jerry php

Jerry php

02/10/2012 15:43:34
Quote Anchor link
Dankje Reshad! Maar ik gebruik toch die andere van Nick omdat die iets eenvoudiger is, maar toch hartelijk dank! Wel hoop ik dat iemand nog een antwoord weet op mijn andere vraag over het euroteken.
 
Ozzie PHP

Ozzie PHP

02/10/2012 15:46:54
Quote Anchor link
Vervang je euro-teken door:

&euro;
 
Jerry php

Jerry php

02/10/2012 15:47:28
Quote Anchor link
Volledig opgelost nu. Dankje!
 
- Mark -

- Mark -

02/10/2012 16:31:57
Quote Anchor link
Was je niet toevallig opzoek naar array_rand()?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php

    # Een lijst met willekeurige personen.

        $personen = array('Kwik', 'Kwek', 'Kwak');


    # 1 enkele persoon kiezen.

        $the_chosen_one = $personen[ array_rand($personen) ]; // array_rand geeft 0, 1 of 2 terug in dit geval.

?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.