Alex_: multidimensionales/assoziatives json ausgeben

Beitrag lesen

Ich habe ein mehrdimensionales Array mit folgenden Aufbau

<?php
$statistik =	array(
					'adam' => array(
						'spieler' => array(
							'pkt' => array(
								'bez' => 'Punkte',
								'wert' => 500
							),
							'zeit' => array(
								'bez' => 'Spielzeit in Sekunden',
								'wert' => 420
							)
						),
						'klasse' => array(
							'jumper' => array(
								'bez' => 'Springer',
								'wert' => 1
							),
							'runner' => array(
								'bez' => 'Läufer',
								'wert' => 0
							)
						)
					),
					'zohan' => array (
						'spieler' => array (
							'pkt' => array(
								'bez' => 'Punkte',
								'wert' => 1500
							),
							'zeit' => array(
								'bez' => 'Spielzeit in Sekunden',
								'wert' => 924
							)
						),
						'klasse' => array(
							'jumper' => array(
								'bez' => 'Springer',
								'wert' => 1
							),
							'runner' => array(
								'bez' => 'Läufer',
								'wert' => 0
							)
						)
					)
				); 
?>

Dieses ist in der aktuellen PHP-Datei "verfügbar". Nun soll per JS/jQuery bei Klick auf ein div-Element eine Liste mit den Statistikwerten des Spielers ausgegeben werden, dessen Key der Element-ID entspricht.

Die HTML-Elemente:

<div id="adam">Adam</div>
<div id="zohan">Zohan</div>
<div id="ausgabe">Hier sollen die Statistikwerte erscheinen</div>

Meine jQuery-Versuche:

<script>
	$(document).ready(function(){
		$( 'div' ).click(function() {
			var id = $(this).attr('id');
			var json = <?php echo json_encode($statistik); ?>;
			//var json = { pkt: ['Punkte', '500', 'blubb'] }; // Mit diesem eindimensionalen Testarray klappt es
			$( "#ausgabe" ).text(id);
				var ul = $('<ul>').appendTo(ausgabe);

				$(json.pkt).each(function(index, item) {
					ul.append(
						$(document.createElement('li')).text(item)
					);
				});
		});
	});
</script>

Mit dem auskommentierten eindimensionalem nummerischen Array klappt es mit der Ausgabe. Mir ist klar, dass ich die each-Schleife anaolog zu foreach in PHP verschachteln muss. Ich weiß nur nicht wie(?). Erschwerend kommt hinzu, dass ich keine nummerischen Indizes sondern assoziative verwende und ich es damit noch nichtmal eindimensional hinbekomme.

Ich hoffe, dass eine Verschachtelung irgendwie möglich ist. Alternativ fällt mir jetzt nur ein, einfach die Werte aller Spieler ins HTML einzufügen und auszublenden und dann per Klick nur noch die Einblendung des gewünschten Spielers vorzunehmen.

Kann mir jemand helfen, wie ich die Statistikwerte eines bestimmten Spielers (z.B. Adam) aus dem obigen Array mithilfe von jQuery bei Klick ausgeben kann?

Freundliche Grüße Alex