php - Sort an array of objects by fields
i would like to sort the following tab by the "date" field and calculate the sum of the "temps" field :
0 => array (size=3) 'id_cra' => string '4586' (length=4) 'temps' => string '03:00:00' (length=8) 'date' => string '2013-06-03' (length=10)
1 => array (size=3) 'id_cra' => string '4587' (length=4) 'temps' => string '03:00:00' (length=8) 'date' => string '2013-06-06' (length=10)
2 => array (size=3) 'id_cra' => string '4588' (length=4) 'temps' => string '03:00:00' (length=8) 'date' => string '2013-06-05' (length=10)
3 => array (size=3) 'id_cra' => string '4589' (length=4) 'temps' => string '03:00:00' (length=8) 'date' => string '2013-06-06' (length=10)
4 => array (size=3) 'id_cra' => string '4590' (length=4) 'temps' => string '03:00:00' (length=8) 'date' => string '2013-06-07' (length=10)
5 => array (size=3) 'id_cra' => string '4591' (length=4) 'temps' => string '02:00:00' (length=8) 'date' => string '2013-06-03' (length=10)
6 => array (size=3) 'id_cra' => string '4592' (length=4) 'temps' => string '03:30:00' (length=8) 'date' => string '2013-06-03' (length=10)
The expected result :
date = > Sum of the "Temps" fields
2013-06-03 =>08:30:00
2013-06-06 =>06:00:00
etc
PS: Sorry for asking something that might be simple for you, i already checked on internet (for instance here : Sort array of objects by object fields) but i don't understand the answer
Answer
Solution:
I didn't try, but it has to be something like this:
calculating the sums would be a loop after sorting the array where you have to "group" by date and sum the "temps"
Answer
Solution:
The first part is fairly simple. We can sort the data for an array by a field using
array_multisort()
like so:But now want to add the times for each of the days. This isn't difficult, but you will lose the
id_cra
values. So for the example below I have just created a new array. You should be able to use the information to build it back into your original array if that what you want to do.