Goede dag.
Onderstaande kom ik niet uit.
Ik moet het ene plaatje vaker laten zien dan het andere plaatje. Bijvoorbeeld het ene plaatje 50% van de keren, andere 20% en overige 10%.
Hoe kan ik dat doen?

Hieronder het script zoals ik het nu heb en dus uitgebreid moet worden met bovenstaande. Ik heb al vanalles bekeken en geprobeerd maar zonder het gewenste resultaat. Zal vast heel makkelijk zijn omdat ik vaak te moeilijk na denkn.

<?php
// Random Image With Link
function display_random_img($array) {
$key = rand(0 , count($array) -1);
$link_url = $array[$key]['url'];
$alt_tag = $array[$key]['alt'];
$random_img_url = $array[$key]['img_url'];
list($img_width, $img_height) = getimagesize($random_img_url);
return "<a href=\"$link_url\"><img src=\"$random_img_url\" width=\"$img_width\" height=\"$img_height\" alt=\"$alt_tag\" /></a>";
}

// Hier staat de informatie van de plaatjes
$images_array = array(
array(
'url' => 'http://g-voetbal.eu/',
'alt' => 'Suzanne trapt de bal op g-voetbaldag Barendrecht',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2013/09/38002_426707400237_3215939_n1.jpg'
),
array(
'url' => 'http://g-voetbal.eu/wat-is-g-voetbal/',
'alt' => 'Suzanne lacht tijdens toernooi',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2013/09/196192_10150950009280238_1807472408_n.jpg'
),
array(
'url' => 'http://g-voetbal.eu/mij/',
'alt' => 'Suzanne trapt de bal tijdens internationaal toernooi',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2014/10/1918353_197460475237_6263653_n.jpg'
)
);

echo display_random_img($images_array);
?>
>> Bijvoorbeeld het ene plaatje 50% van de keren, andere 20% en overige 10%.

Hoe kom je dan op 100%? ;-)

Conceptueel krijg je zoiets:


<?php
// Percentages/kansen verdelen van 1 t/m 80:
$percentage = mt_rand(1, 80);
if ($percentage <= 50) {
    // Kans 50%
    $image = images_array[0];
} elseif ($percentage <= 70 {
    // Kans 70% - 50% = 20%:
    $image = images_array[1];
} else {
    // Restkans 80% - 70% = 10%:
    $image = images_array[2];
}
?>
Ward van der Put op 05/10/2015 10:07:32

>> Bijvoorbeeld het ene plaatje 50% van de keren, andere 20% en overige 10%.

Hoe kom je dan op 100%? ;-)



Dankjewel Ward.
Tja van die 100% zag ik inderdaad. Was typefoutje. Ik snap natuurlijk wel dat het totaal op 100% moet komen.

[size=xsmall]Toevoeging op 05/10/2015 14:11:26:[/size]

Het lukt nog niet helemaal. Hij geeft een foutmelding op lijn 11. Dat is waar images_array[0]; staat.
wat doe ik fout?

<?php
// Percentages/kansen verdelen van 1 t/m 80:
$percentage = mt_rand(1, 80);
if ($percentage <= 50) {
// Kans 50%
$image = images_array[0];
} elseif ($percentage <= 70 {
// Kans 70% - 50% = 20%:
$image = images_array[1];
} else {
// Restkans 80% - 70% = 10%:
$image = images_array[2];
}
// Hier staat de informatie van de plaatjes
$images_array = array(
array(
'url' => 'http://g-voetbal.eu/',
'alt' => 'Suzanne trapt de bal op g-voetbaldag Barendrecht',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2013/09/38002_426707400237_3215939_n1.jpg'
),
array(
'url' => 'http://g-voetbal.eu/wat-is-g-voetbal/',
'alt' => 'Suzanne lacht tijdens toernooi',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2013/09/196192_10150950009280238_1807472408_n.jpg'
),
array(
'url' => 'http://g-voetbal.eu/mij/',
'alt' => 'Suzanne trapt de bal tijdens internationaal toernooi',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2014/10/1918353_197460475237_6263653_n.jpg'
)
);

echo display_random_img($images_array);
?>
Je definieert images_array pas op regel 15.
Dat moet je voor regel 4 doen.
Helaas hij blijft een foutmelding geven. Of ik doe iets helemaal verkeerd.
Ik heb gedaan zoals jij zei. Heb echter heel de code verplaatst. Of moest dat niet?

<?php
// Hier staat de informatie van de plaatjes
$images_array = array(
array(
'url' => 'http://g-voetbal.eu/',
'alt' => 'Suzanne trapt de bal op g-voetbaldag Barendrecht',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2013/09/38002_426707400237_3215939_n1.jpg'
),
array(
'url' => 'http://g-voetbal.eu/wat-is-g-voetbal/',
'alt' => 'Suzanne lacht tijdens toernooi',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2013/09/196192_10150950009280238_1807472408_n.jpg'
),
array(
'url' => 'http://g-voetbal.eu/mij/',
'alt' => 'Suzanne trapt de bal tijdens internationaal toernooi',
'img_url' => 'http://g-voetbal.eu/test/wp-content/uploads/2014/10/1918353_197460475237_6263653_n.jpg'
)
);
// Percentages/kansen verdelen van 1 t/m 80:
$percentage = mt_rand(1, 80);
if ($percentage <= 50) {
// Kans 50%
$image = images_array[0];
} elseif ($percentage <= 70 {
// Kans 70% - 50% = 20%:
$image = images_array[1];
} else {
// Restkans 80% - 70% = 10%:
$image = images_array[2];
}
echo $percentage ($images_array);
?>
</body>
</html>

Hij geeft nu de foutmelding op $image = images_array[0];
En wat is de exacte foutmelding?
Dit is de exacte foutmelding:
Parse error: syntax error, unexpected '[' in D:\wamp\www\IWP\Opdracht13.php on line 29
$image = images_array[0];

Zie ik ook nu pas maar je mist de $:
$image = $images_array[0];
Oops zie ik nu ook inderdaad.
Aangepast nu maar helaas nog steeds een foutmelding :(
Dit keer: syntax error, unexpected '{' in D:\wamp\www\IWP\Opdracht13.php on line 30
Dat is bij: } elseif ($percentage <= 70 {
elseif ($percentage <= 70 {

mist een )
elseif ($percentage <= 70) {

Reageren