Given time, I would probably simplify this some. But here's a fairly good approach assuming I understand the question:
PHP Code:
<pre><!-- see below comment on the closing /pre tag (this is for visual formatting) -->
<?php
$string="item1.20|item2.60|item3.20";
$ar1 = explode('|', $string);
$percent = 0;
foreach($ar1 as $item){
$ar2[] = explode('.', $item);
$ar2[count($ar2) - 1][1] = ($percent += $ar2[count($ar2) - 1][1]);
}
$rnum = rand(1, $percent);
$randomresult = $ar2[0][0];
print_r($ar2); // just so you can see the multidimensional array, may be removed or commented out
foreach ($ar2 as $items){
if($rnum <= $items[1]){
$randomresult = $items[0];
break;
}
}
echo "\n$rnum"; // just so you can see the random number, may be removed or commented out
echo "\n$randomresult"; // this is the result. You can leave this line as is, or comment it out/remove it and do something else later with $randomresult
?></pre> <!-- the pre tag is just for visual formatting, if you are doing other thins with
the code that either have their own format, or that aren't visual, it can be removed -->
Bookmarks