erzoolander
asked on
PHP Array Grouping of Values
I have an array like this...
$array = array();
$array['2017-03-15']['rate ']=125;
$array['2017-03-16']['rate ']=125;
$array['2017-03-17']['rate ']=130;
$array['2017-03-18']['rate ']=130;
$array['2017-03-19']['rate ']=125;
$array['2017-03-20']['rate ']=125;
$array['2017-03-21']['rate ']=115;
I need the output to be like.
"2 days @ 125
2 days @ 130
2 day at $125
1 Day at $115"
in the order of the days.
So, if there's X consecutive days at a specific amount, it just needs to group those together as a single line reflecting that - in date order.
How would I go about pulling that off?
$array = array();
$array['2017-03-15']['rate
$array['2017-03-16']['rate
$array['2017-03-17']['rate
$array['2017-03-18']['rate
$array['2017-03-19']['rate
$array['2017-03-20']['rate
$array['2017-03-21']['rate
I need the output to be like.
"2 days @ 125
2 days @ 130
2 day at $125
1 Day at $115"
in the order of the days.
So, if there's X consecutive days at a specific amount, it just needs to group those together as a single line reflecting that - in date order.
How would I go about pulling that off?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Sorry, I was missing a line. After the foreach loop through $array, you might still have some data at the end that needs to be added to the $rate_log array, so just check and add it after the loop ends:
if($current_rate_count > 0) { $rate_log[] = array($current_rate_count, $current_r ate); }
if($current_rate_count > 0) { $rate_log[] = array($current_rate_count,
ASKER
Thanks! I found that after also :)
Thank you!
Thank you!
ASKER
Here's my code -
Open in new window
which outputs:
2 day at $125
3 day at $130
-- for some reason it's omitting the 135 value...or anything that comes after 130.