[GastForen Programmierung/Entwicklung PHP und MySQL PHP Arrays :- Die ausgabe das array der stäter gibt nur array zuruck

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

PHP Arrays :- Die ausgabe das array der stäter gibt nur array zuruck

here4fun
Beiträge gesamt: 47

13. Sep 2004, 22:18
Beitrag # 1 von 4
Bewertung:
(2274 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Kann jemand mir hir helfen ? Die Array ausgabe der städte gibt mir nur array zurück was mache ich falsch? Auch ich sollte hier keine assosiative arrays! Bin ein neuer PHP student. Jede hilfe ist wilkommen. Ich habe bereits forum durch gearbeitet & Samtliche Tutorials.

MFG
barbara

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>L&auml;nder und St&auml;dte</title>
</head>
<body>

<?php

//Erste array auflistung der länder

$array["geo"][0][0] = "Italien";
$array["geo"][1][0] = "Deutschland";
$array["geo"][2][0] = "Frankreich";
$array["geo"][3][0] = "Kenia";
$array["geo"][4][0] = "Gro&szlig;britannien";

//Zweite array mit 2 einträge land + stadt

$array["geo"][0][0]= "Italien";
$array["geo"][0][1]= "Florenz";

$array["geo"][1][0] = "Deutschland";
$array["geo"][1][1] = "Potsdam";
//Städte die dazu kommen später 2.tafel
$array["geo"][1][2] = "M&uuml;nchen";
$array["geo"][1][3] = "Magdeburg";
$array["geo"][1][4] = "Dortmund";

$array["geo"][2][0] = "Frankreich";
$array["geo"][2][1] = "Rennes";
//Städte die dazu kommen später 2.tafel
$array["geo"][2][2] = "Dijon";
$array["geo"][2][3] = "Lyon";

$array["geo"][3][0] = "Kenia";
$array["geo"][3][1] = "Kisumu";
//Städte die dazu kommen später 2.tafel
$array["geo"][3][2] = "Mombasa";

$array["geo"][4][0] = "Nord-Irland";
$array["geo"][4][1] = "Belfast";

?>
<h1>L&auml;nder und St&auml;dte</h1>
<br><br>
<table cellspacing="0" cellpadding="2" border="1" bordercolor="#000000" width="80%">
<tr bgcolor="#808080" valign="top">
<td><b>Land</b></td>
<td><b>Stadt</b></td>
</tr>
<tr bgcolor="#c0c0c0" valign="top" >
<td><?php echo $array["geo"][0][0]; ?></td>
<td><?php echo $array["geo"][0][1]; ?></td>
</tr>
<tr bgcolor="#808080" valign="top">
<td><?php echo $array["geo"][1][0]; ?></td>
<td><?php echo $array["geo"][1][1]; ?></td>
</tr>
<tr bgcolor="#c0c0c0" valign="top">
<td><?php echo $array["geo"][2][0]; ?></td>
<td><?php echo $array["geo"][2][1]; ?></td>
</tr>
<tr bgcolor="#808080" valign="top">
<td><?php echo $array["geo"][3][0]; ?></td>
<td><?php echo $array["geo"][3][1]; ?></td>
</tr>
<tr bgcolor="#c0c0c0" valign="top">
<td><?php echo $array["geo"][4][0]; ?></td>
<td><?php echo $array["geo"][4][1]; ?></td>
</tr>
</table>
<br><br><br><br>
<table cellspacing="0" cellpadding="2" border="1" bordercolor="#000000" width="80%">
<tr bgcolor="#808080" valign="top">
<td><b>Land</b></td>
<td><b>Stadt</b></td>
</tr>
<tr bgcolor="#c0c0c0" valign="top" >
<td><?php echo $array["geo"][0][0]; ?></td>
<td><?php echo $array["geo"][0]; ?></td>
</tr>
<tr bgcolor="#808080" valign="top">
<td><?php echo $array["geo"][1][0]; ?></td>
<td><?php echo $array["geo"][1]; ?></td>
</tr>
<tr bgcolor="#c0c0c0" valign="top">
<td><?php echo $array["geo"][2][0]; ?></td>
<td><?php echo $array["geo"][2]; ?></td>
</tr>
<tr bgcolor="#808080" valign="top">
<td><?php echo $array["geo"][3][0]; ?></td>
<td><?php echo $array["geo"][3]; ?></td>
</tr>
<tr bgcolor="#c0c0c0" valign="top">
<td><?php echo $array["geo"][4][0]; ?></td>
<td><?php echo $array["geo"][4]; ?></td>
</tr>
</table>
</body>
</html>
X

PHP Arrays :- Die ausgabe das array der stäter gibt nur array zuruck

Tömsken
Beiträge gesamt: 720

14. Sep 2004, 03:11
Beitrag # 2 von 4
Beitrag ID: #108477
Bewertung:
(2274 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Barbara.

PHP meldet "Array", weil Du die 3. Array-Dimension nicht angibst:

<td><?php echo $array["geo"][0][0]; ?></td>
<td><?php echo $array["geo"][0]; ?></td>

Statt $array["geo"][0]; müsstest Du also $array["geo"][0][1]; - oder ähnlich - angeben.

Davon ab: Die initialisierst die Länder-Array-Einträge doppelt. Der erste Block ab $array["geo"][0][0] = "Italien"; bis "Gro&szlig;britannien" könnte entfallen.


als Antwort auf: [#108461]

PHP Arrays :- Die ausgabe das array der stäter gibt nur array zuruck

here4fun
Beiträge gesamt: 47

14. Sep 2004, 04:34
Beitrag # 3 von 4
Beitrag ID: #108481
Bewertung:
(2274 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi Tömsken,

In der 2. Tabelle sollten alle städte angezeigt werden ! Also das ganze array für DE , FR u.s.w

und $array["geo"] muß geändert werden zu $array["0"] oder ähnliches.

Daher meine frage wei muß ich diesen skript ändern so das die ausgabe in der 2. Tabelle alle länder eintrage ausgibt?

z.b. DE = Potsdam
München
Magdeburg
Dortmund
und FR = Rennes
Dijon
Lyon

dazu fehlt mir einfach das wissen ! Leider :(

Danke für die weiter hilfe
LG b


als Antwort auf: [#108461]

PHP Arrays :- Die ausgabe das array der stäter gibt nur array zuruck

Tömsken
Beiträge gesamt: 720

14. Sep 2004, 13:20
Beitrag # 4 von 4
Beitrag ID: #108575
Bewertung:
(2274 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Ah ja, comprende.

Du willst also den Inhalt eines Arrays - bzw. konkret eine Dimension deines Arrays - ausgeben. Dazu gibt's mehrere Möglichkeiten.
Ich nehme mal die Funktion array_walk() (s. http://de2.php.net/...ction.array-walk.php )

Schreibe zunächst eine Funktion, die die Ausgabe der Städtenamen vornimmt und platziere sie am besten recht weit oben im Code, z. B. nach den Array-Definitionen:

[..]
$array["geo"][3][2] = "Mombasa";

$array["geo"][4][0] = "Nord-Irland";
$array["geo"][4][1] = "Belfast";

function printCity($item, $key) {
echo $item . '<br>';
}

?>
[..]


Nun ersetzt Du die Zeilen <?php echo $array["geo"][1]; ?> durch folgendes:

<tr bgcolor="#c0c0c0" valign="top" >
<td><?php echo $array["geo"][0][0]; ?></td>
<td><?php array_walk( $array["geo"][0], 'printCity' ); ?></td>
</tr>
<tr bgcolor="#808080" valign="top">
<td><?php echo $array["geo"][1][0]; ?></td>
<td><?php array_walk( $array["geo"][1], 'printCity' ); ?></td>
</tr>
<tr bgcolor="#c0c0c0" valign="top">
<td><?php echo $array["geo"][2][0]; ?></td>
<td><?php array_walk( $array["geo"][2], 'printCity' ); ?></td>
</tr>

[etc]

Das "geo" in den Arrays kannst du natürlich - wie angesprochen - z. B. ebenfalls durch Zahlen ersetzen ( - oder ggf. auch gleich komplett weglassen).


Alternativ zum obigen Code kannst Du das Array auch per Schleife ausgeben:

// Deutsche Städte
for ($i=0; $i<count($array["geo"][1]); $i++) {
echo $array["geo"][1][$i]."<br>";
}


ODER - etwas kompakter mit "foreach" (s. http://de2.php.net/...ructures.foreach.php ):

foreach( $array["geo"][1] as $city ) {
echo $city . "<br>";
}


Fohes basteln... ;)
Tom


als Antwort auf: [#108461]
X