Random color in foreach loop

4 posts by 2 authors in: Forums > CMS Builder
Last Post: September 11, 2017   (RSS)

By Mikey - September 9, 2017 - edited: September 9, 2017

Anyone have any suggestions on how to get a random rgba() color in this foreach loop?

<?php if ($tagsToCount): ?>
         <?php  $maximumResults = 12;
        $resultCount = 0;
?>
  <?php $totalTagCount = array_sum($tagsToCount); ?>
    <?php
        arsort($tagsToCount);
                $tagsToCount = array_slice($tagsToCount, 0, 99);
    foreach ($tagsToCount as $key => $value): ?>
                'rgba(255, 99, 132, 0.2)', <<<<// I need this to be a random results.
<?php if (++$resultCount == $maximumResults) { break;}?>

  <?php endforeach ?>
<?php endif ?>

Thanks Zicky

By Mikey - September 10, 2017

Got this figured out. Not going to say it's perfect, but it seems to be working so far.

<?php foreach ($namesRecords as $record): ?>
       <?php 
        {
             $r = rand(0,255); 
             $g = rand(0,255); 
             $b = rand(0,255); 
             $color = dechex($r) . dechex($g) . dechex($b);
        }
        ?>
             <?php echo "rgb(".$r.",".$g.",".$b.")"; ?>
  <?php endforeach ?>

Zicky

By Mikey - September 11, 2017

Thanks Dave,

Here's what I came up with as the final solution for random RGB colors. This has a way to control the opacity of the colors displayed.

<?php foreach ($nameRecords as $record): ?>
     <?php {
            $r = rand(0,255); $g = rand(0,255); $b = rand(0,255); $opacity = 0.4;
     } ?>
            '<?php echo "rgba(".$r.",".$g.",".$b.",".$opacity.")"; ?>',
<?php endforeach ?>

I'm using this in some charts I'm building using Charts.js "http://www.chartjs.org".

Zicky