Dices que ya viene ordenador por fecha, se me ocurre sacar un arreglo asi:
Código:
array(
'clave1' => array(
'fecha1' => numero_repeticiones,
'fecha2' => numero_repeticiones,
'fecha3' => numero_repeticiones,
),
'clave2' => array(
'fecha1' => numero_repeticiones,
'fecha2' => numero_repeticiones,
'fecha3' => numero_repeticiones,
)
)
De esta manera:
Código PHP:
$items = [
["fecha" => "2014-05-26", "clave" => "11"],
["fecha" => "2014-05-26", "clave" => "10"],
["fecha" => "2014-05-26", "clave" => "06"],
["fecha" => "2014-05-26", "clave" => "10"],
["fecha" => "2014-05-27", "clave" => "11"],
["fecha" => "2014-05-27", "clave" => "06"],
["fecha" => "2014-05-28", "clave" => "10"],
["fecha" => "2014-05-28", "clave" => "10"],
["fecha" => "2014-05-28", "clave" => "02"],
["fecha" => "2014-05-28", "clave" => "01"],
["fecha" => "2014-05-29", "clave" => "06"],
["fecha" => "2014-05-29", "clave" => "02"],
["fecha" => "2014-05-30", "clave" => "10"],
["fecha" => "2014-05-30", "clave" => "03"]
];
function ordenar(array $items) {
$result = [];
foreach ($items as $i => $item) {
$clave = (int) $item['clave'];
$fecha = $item['fecha'];
$result[$clave][$fecha] = isset($result[$clave][$fecha]) ? $result[$clave][$fecha] + 1 : 1; // si quieres empezar de cero, 0
}
return $result;
}
var_dump(ordenar($items));
Produce esta salida:
Código:
array (size=6)
11 =>
array (size=2)
'2014-05-26' => int 1
'2014-05-27' => int 1
10 =>
array (size=3)
'2014-05-26' => int 2
'2014-05-28' => int 2
'2014-05-30' => int 1
6 =>
array (size=3)
'2014-05-26' => int 1
'2014-05-27' => int 1
'2014-05-29' => int 1
2 =>
array (size=2)
'2014-05-28' => int 1
'2014-05-29' => int 1
1 =>
array (size=1)
'2014-05-28' => int 1
3 =>
array (size=1)
'2014-05-30' => int 1
A ver si así te sirve.