Frage zu Arrays

#1110495
Lesenswert?

Also ich nehm folgenden Code:

<?php

$user[46]["id"]="46";
$user[46["name"]="Irgendwas";
$user[46]["email"]="irgendwas@wer.com";

echo "Der User mit der ID $user[46]["id"] heißt $user[46]["name"]. Seine 
Emailadresse ist $user[46]["email"]<br>\n";
?>

Dreamweaver sagt: Keine Fehler oder Warnungen gefunden.[HTML 4.0]

Firefox bzw IE sagt :

Parse error: syntax error, unexpected '[', expecting ']' in 
/usr/export/www/index.php on line 4

Daher die Frage was is denn nu falsch un wie kann ich es "gangbar" 
machen. Das steht so aber in meinem Buch von Gallileo Computing 
zumindest das Grundgerüst mit den doppelten Arrays.
#1110514
Lesenswert?

habsch au eben gesehen nur jetzt kommt:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in 
index.php on line 7

das wieder liegt 100% mit dem " zusammen am ende

Aktueller Code:

<?php

$user[46]["id"]="46";
$user[46]["name"]="Irgendwas";
$user[46]["email"]="irgendwas@wer.com";

echo "Der User mit der ID $user[46]["id"] heißt $user[46]["name"]. Seine 
Emailadresse ist $user[46]["email"]";
?>
#1110529
Lesenswert?

Wo beginnt und wo endet in
1
echo "Der User mit der ID $user[46]["id"] heißt $user[46]["name"]. Seine
2
Emailadresse ist $user[46]["email"]";

der String. (Hinweis: Das Syntaxcoloring hier im Forum zeigt dir das 
sogar recht deutlich)
Ein String geht vom öffnenden " bis zum nächsten ", welches den String 
wieder schliesst.

Du hast hier also
1
echo "Der User mit der ID $user[46]["    id       "] heißt $user[46] ...

Der String geht bis  ...46][, dann ist er zuende, als nächstes kommt id, 
was nicht mehr Teil des Strings ist.

Wie Peter oben schon sagte
1
echo "Der User mit der ID ".$user[46]["id"]." heißt ".$user[46]["name"]." Seine Emailadresse ist ".$user[46]["email"]."<br>\n";

oder auch
1
echo "Der User mit der ID ",
2
     $user[46]["id"],
3
     " heißt ",
4
     $user[46]["name"],
5
     " Seine Emailadresse ist ",
6
     $user[46]["email"],
7
     "<br>\n";
#1110549
Lesenswert?

Nette Mann wrote:

> Die Variablen und der rest ist gleich so funzt es nur warum ausgerechnet
> ". ." hab ich noch nit gerallt


Weil der Punkt aus 2 Strings einen einzigen macht

Deine Ausgabe besteht aus 3 Teilen
1) aus  "Der User mit der ID "
2) dem Inhalt von $user[46][id]
3) und dem String "<br>\n"

Mit dem .  werden diese 3 einzelnen Strings aneinandergehängt und 
ergeben den kompletten String, den echo dann ausgibt.

Alternativ hättest du dem echo auch die 3 Strings einzeln als 3 
gesonderte Ausgaben übergeben können
1
   echo "Der User mit der ID ", $user[46][id], "<br>\n";
2

3
   echo "Der User mit der ID ",
4
        $user[46][id],
5
        "<br>\n";
#1110551
Lesenswert?

Die Lösung sieht übrigens so aus:

<?php

$user[46]["id"]="47";
$user[46]["name"]="Irgendwas";
$user[46]["email"]="irgendwas@wer.com";


echo "Der User mit der ID ".$user[46][id]."  hei&szlig;t 
".$user[46][name].". Seine Emailadresse ist ".$user[46][email]."<br>\n";
?>

ODER

<?php

$user[46]["id"]="47";
$user[46]["name"]="Irgendwas";
$user[46]["email"]="irgendwas@wer.com";


echo "Der User mit der ID ".$user[46]["id"]."  hei&szlig;t 
".$user[46]["name"].". Seine Emailadresse ist 
".$user[46]["email"]."<br>\n";
?>

nebenbei was bringt eigentlich das br? lass ich es weg sieht es aus wie 
vorher
Gast #1110552
Lesenswert?

HÄ?

also mal ohne das echo

$s = "asdfasdf";

bei 2 Strings macht man

$s = "String1" . "String2";

mit variable

$s = "Sting1 $variable "String2";

und jetzt mit array

$s = "String1" . $array["1"] . "String2";

und echo will nunmal ein String haben.

echo $s

damit kann $s gleich eingsetzt werden und man hat das konstrukt von oben
#1110576
Lesenswert?

Nette Mann wrote:
> geschrieben hättest br = Zeilenumbruch hätte das Board ein paar Byte

Sorry.
Aber als angehender PHP Programmierer sollte man schon ein paar einfache 
HTML Experimente (= HTML Code im Klartext mit Notepad schreiben) gemacht 
haben. Und dabei stolpert man zwangsweise über <br>

PHP erzeugt einen HTML-Text, der dann vom Browser ausgeführt wird.
Um also PHP zu programmieren, muss man wissen, welchen HTML-Code der 
Browser sehen will. Und dazu muss man nun mal ein paar HTML Tags (aka 
HTML-'Befehle') kennen.
Gast #1110577
Lesenswert?

@Nette Mann

Ich muss aber auch sagen, wenn man gleich mit Dreamweaver anfängt und 
mit array loslegt sollte man zu erste verstehen was man macht, dazu 
gehört es auch das man die Grundlagen von HTML versteht. Also mal eine 
kleine webseite mit dem notepad erzeugen kann. Als nächstes sollte man 
ein kleines "Hallo World" in php schreiben und nicht alle irgendwo her 
kopieren.

Wo hattest du die Zeile

echo "Der User mit der ID $user[46]["id"] heißt $user[46]["name"]. Seine
Emailadresse ist $user[46]["email"]<br>\n";

überhaupt her, wenn du nicht weiss was sie macht? Ist das die neue 
Copy/Past gesellschaft!
Gast #1110591
Lesenswert?

Die Zeile hier
1
echo "Der User mit der ID $user[46]["id"] heißt $user[46]["name"]. Seine
2
Emailadresse ist $user[46]["email"]<br>\n";

ist FALSCH und nicht mehr modern, weil:
- Konstanten (die Array-Indizes, id, name, email) setzt man in einfache 
Anführungszeichen, das spart Ausführungszeit.
- Eingeschlossene Variablen sollte man in {} setzen, damits keine 
Verwirrung gibt.
- Rohdaten dürfen nicht ungefiltert an den Browser gelangen.

Richtig für die ersten beiden Punkte wäre:
1
echo "Der User mit der ID {$user[46]['id']} heißt {$user[46]['name']}. Seine Emailadresse ist {$user[46]['email']}<br />\n";

Und ganz korrekt wäre:
1
echo 'Der User mit der ID ' . htmlspecialchars($user[46]['id']) .
2
  ' heißt ' . htmlspecialchars($user[46]['name']) . '.' .
3
  ' Seine Emailadresse ist ' . htmlspecialchars($user[46]['email']) .
4
  "<br />\n";

Den Kram mit &szlig; kann man sich übrigens getrost schenken. Sinnvoller 
ists da, den richtigen Zeichensatz anzugeben. Dann müssen nur noch < und 
> und & und " maskiert werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren