Array
(
[1] => stdClass Object
(
[datum] => 16.10.2012
[id] => 50101776
)
[2] => stdClass Object
(
[datum] => 19.05.2012
[id] => 50110056
)
[3] => stdClass Object
(
[datum] => 02.03.2012
[id] => 50110197
)
[4] => stdClass Object
(
[datum] => 19.05.2012
[id] => 50112834
)
)
>
> Ich suche nun nach einer eleganten Methode das Array nach dem Datum zu sortieren und gleichzeitig Objekte mit gleichem Datum (hier z.b. [2] und [4] ) zusammenzufassen:
>
> am Besten wäre als Ziel array sowas:
> ~~~html
>
> Array
> (
> [1] => stdClass Object
> (
> [datum] => 02.03.2012
> [count] => 1
> )
>
> [2] => stdClass Object
> (
> [datum] => 19.05.2012
> [count] => 2
> )
> [3] => stdClass Object
> (
> [datum] => 16.10.2012
> [count] => 1
> )
> )
>
>
Das sieht nicht brauchbar aus. Wer macht oder will denn macht sowas?
$arTermine=array();
foreach ($data as $ar) {
// brauchbares Datumsformat herstellen:
list($d, $m, $y)=explode('.', $ar['datum']);
$datum="$y-$m-$d";
// umfummeln
if (! isset $arTermine[$datum]) {
$arTermine[$datum]=1;
} else {
$arTermine[$datum]++;
}
//sortieren:
ksort ($arTermine);
}
Fehlerchen vorbehalten.
$arTermine sollte jetzt enthalten was Du suchst. Sieht dann so aus:
$arTermine
Array (
[2012-03-02] => 1
[2012-15-19] => 2
[2012-10-16] => 1
)
Du bekommst also ein bequem zu händelndes, schön flaches assoziatives Array. An die Werte kommst Du mit array_keys(), foreach und so weiter.
Die Ausgabe des Datums mache mit etwas wie:
<?php
function getMyGermanDatum($isoDatum) {
return date_format(date_create($isoDatum), 'd.m.Y');
}
?>