The issue: renaming array keys inside a foreach loop.
I'm trying to build a pie chart image with the Google Chart API using information from a database. (I'm going to change the type of data I talk about because it is extremely sensitive. Just wanted to share that so you didn't think my example was completely weird or stupid even.)
After running my SELECT statement, I have a 2-column dataset with multiple rows. I am currently grabbing the data in this way: <?php $total = 0; while ($r = mysql_fetch_array($result)) { $info[$r['month']] = $r['days']; $total += $r['days']; } ?> $info is an array with each key being the name of the month and the value being how many days are in that month. $total is the sum of each days.
To supply the dataset inside the image src, I provide a comma separated list. To supply the labels for each dataset, I provide a list separated by pipes.
The problem that I am having is that I would like each label to be the month as well as a percentage number of the total in parenthesis next to the month name.
I am building the URL perfectly fine using JUST the month name like this: <?php echo '<p>'; echo '<img src="http://chart.apis.google.com/chart?cht=p&chd=t:'; echo implode(',',array_values($info)); echo '&chs=250x100&chl='; echo implode('|',array_keys($info)); echo '" alt="" />'; echo '</p>'; ?>(I broke up each line for readability.)
How I am trying to include the percentage in the label is be redefining the key BEFORE I add in the array keys to the URL. Trying by this method: <?php foreach ($info as $key => $value) { $key = $key . (number_format($value/$total,0)) . '%'; } ?>
Expected outcome: The labels on the image would read something to the tune of -- June (8.2%)
Actual outcome: Nothing. Well, not nothing. Just the month is coming out. The key names are not being edited.
Thanks for reading this far. I appreciate the help