Arrayinhalt mit Arraybezeichnung ausgeben

fanste

Erfahrenes Mitglied
Hallo.

Ersteinmal etwas Code:

PHP:
<?
include('./includes/start.php');
	$sql = "SELECT post_id, post_time FROM posts";
	if(!$result = mysql_query($sql))
	{
		error_die('Schwerer Fehler',__LINE__-3,__FILE__,mysql_errno(),mysql_error(),$sql);
	}
	while($row=mysql_fetch_assoc($result))
	{
		$ts = date('d.m.Y',$row['post_time']);
		if(empty($daten[$ts]))
		{
			$daten[$ts] = 1;
		}
		else
		{
			$daten[$ts]++;
		}
	}

?>

Das Array sieht dann in etwa so aus:
Array
(
[17.06.2005] => 1
[20.06.2005] => 5
)

Nun will ich den Arrayteil ausgeben, der die höchste Zahl hat. Soweit kein Problem, mach ich mit
PHP:
echo max($daten);

Dadurch wird mir allerdings nur die Zahl ausgegeben. Wie muss ich die Ausgabe, bzw. das Array erweitern, damit ich auch das dazugehörige Datum erhalte? Hab da grad leider garkeinen Plan.

Ich hoffe ihr könnt mir helfen.

mb fanste
 
Falls du nur den Datensatz mit einem maximalen Eigenschaftswert haben möchtest, kannst du dies auch gleich in die Abfrage einbauen:
Code:
SELECT
        `post_id`,
        `post_time`,
        COUNT(*) AS `anzahl`
  FROM
        `posts`
  GROUP BY
        `post_time`
  ORDER BY
        `anzahl` DESC
 
Ich hätte noch dazusagen sollen, das ich das mit UNIX-Timestamps mache, erkennt man aber auch im Code. Daher kann ich ja jetzt nicht nach post_time zusammenfassen, da ja die Timestamps unterschiedlich sind. Daher dieses kleine Script. Mein Problem ist nur, dass ich das Datum nicht mit der Zahl rausbekomme. mit max($daten) bekomm ich nur die Zahl, an Post an diesem Tag. Wie aber könnte ich das Datum dazubekommen?
 
Hat sich erledigt. Hab das Datum einfach noch hintendran gehängt, also
PHP:
include('./includes/start.php');
	$sql = "SELECT post_id, post_time FROM posts";
	if(!$result = mysql_query($sql))
	{
		error_die('Schwerer Fehler',__LINE__-3,__FILE__,mysql_errno(),mysql_error(),$sql);
	}
	while($row=mysql_fetch_assoc($result))
	{
		$ts = date('d.m.Y',$row['post_time']);
		if(empty($daten[$ts]))
		{
			$daten[$ts] = "1|".$ts;
		}
		else
		{
			$t = explode('|',$daten[$ts]);
			$t[0]++;
			$daten[$ts]=$t[0]."|".$t[1];
		}
	}
$max_posts = explode('|',max($daten));
echo $max_posts[0]." -> ".$max_posts[1];

Trotzdem Danke. Wenn es eine einfachere/bessere Möglichkeit gibt, lasst es mich bitte wissen.
 
Zurück