PHP - Grouping a Multidimensional array by key value

php

Solution

foreach($files as $file){
    $path_parts = pathinfo($file);
    $date = date ("jS \of F,  Y", filemtime($file));
    if(isset($dateUploaded[$date])) {
          $dateUploaded[$date][] = $path_parts['filename'];
    } else {
          $dateUploaded[$date] = array($path_parts['filename']);
    }
}

Problem

I currently have this code: ``` $files = glob('songs/*.{mp3}', GLOB_BRACE); $dateUploaded = array(); foreach($files as $file){ $path_parts = pathinfo($file); $dateUploaded[] = array("Date Uploaded" => date ("jS \of F, Y", filemtime($file)), "File Name" => $path_parts['filename']); } print_r($dateUploaded); ``` Which outputs ``` Array ( [0] => Array ( [Date Uploaded] => 26th of February, 2013 [File Name] => All That Glitters - This Sound (Felix Cartal Remix) ) [1] => Array ( [Date Uploaded] => 26th of February, 2013 [File Name] => Bertie Blackman - Hide and Seek ) [2] => Array ( [Date Uploaded] => 18th of December, 2012 [File Name] => Birds of Tokyo - This Fire ) [3] => Array ( [Date Uploaded] => 18th of December, 2012 [File Name] => Bloc Party - Truth ) [4] => Array ( [Date Uploaded] => 18th of December, 2012 [File Name] => C2C - Down the Road ) [5] => Array ( [Date Uploaded] => 18th of December, 2012 [File Name] => Chance Waters - Young and Dumb feat Bertie Blackman ) [6] => Array ( [Date Uploaded] => 26th of February, 2013 [File Name] => City Calm Down - Sense of Self ) [7] => Array ( [Date Uploaded] => 18th of December, 2012 [File Name] => Clubfeet - Heartbreak ) [8] => Array ( [Date Uploaded] => 26th of February, 2013 [File Name] => Cosmo Jarvis - My Own Thing ) [9] => Array ( [Date Uploaded] => 6th of June, 2013 [File Name] => Courtney Barnett - History Eraser ) [10] => Array ( [Date Uploaded] => 6th of June, 2013 [File Name] => Delphic - Baiya ) ) ``` What I am trying to do it group these by the "Date Uploaded" key. So I have something that resembles this: ``` Array ( [26th of February, 2013] => Array ( [0] All That Glitters - This Sound (Felix Cartal Remix) [1] Bertie Blackman - Hide and Seek [2] City Calm Down - Sense of Self [3] Cosmo Jarvis - My Own Thing ) [18th of December, 2012] => Array ( [0] Birds of Tokyo - This Fire [1] Bloc Party - Truth [2] C2C - Down the Road [3] Chance Waters - Young and Dumb feat Bertie Blackman [4] Clubfeet - Heartbreak ) [6th of June, 2013] => Array ( [0] Courtney Barnett - History Eraser [1] Delphic - Baiya ) ) ``` Can somebody please help me out as to how I can do this? The main goal that I am trying to achieve is to be able to just put files in a folder on my server and have my script print out, in the form up a `<ul>`, the songs grouped by date uploaded. i.e. ``` <ul> Last Updated: 26th of February, 2013 <li>All That Glitters - This Sound (Felix Cartal Remix)</li> <li>Bertie Blackman - Hide and Seek</li> <li>City Calm Down - Sense of Self</li> <li>Cosmo Jarvis - My Own Thing</li> </ul> <ul> Last Updated: 18th of December, 2012 <li>Birds of Tokyo - This Fire</li> <li>Bloc Party - Truth</li> <li>C2C - Down the Road</li> <li>Chance Waters - Young and Dumb feat Bertie Blackman</li> <li>Clubfeet - Heartbreak</li> </ul> <ul> Last Updated: 6th of June, 2013 <li>Courtney Barnett - History Eraser</li> <li>Delphic - Baiya</li> </ul> ``` Thank you to everyone who tries to help me out with this.

Original source