| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

17-03-2011, 20:20
|
|
olli9000
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 22
|
|
Problem mit Arrays
Hallo! Bin noch absoluter Anfänger. Daher ist die Geschichte für mich noch ein wenig kompliziert ^^ Es geht in die Richtung Reservierung.
Ich hab eine .txt Datei mit 2 Zeilen wie folgt:
$eintrag1 = array("20.03.2011","19.00","23.00");
$eintrag2 = array("21.03.2011","19.00","20.00");
Jetzt möchte ich z.b. nach dem string "21.03.2011" suchen und wenn dieser gefunden wird, dann soll nur in dem selben Array oder Zeile nach einem weiteren Wert gesucht werden... Geht sowas?
Letztendlich sollen Termine in eine txt Datei geschrieben werden können. Über ein Formular soll man dann einen neuen Termin vereinbaren können, was wiederum nur möglich ist, wenn der Termin (abhängig von Tag und Uhrzeit) noch frei ist (also nicht in meiner txt Datei vorhanden ist).
Ich hoffe, ich konnte das jetzt verständlich rüberbringen... ^^
MFG, olli
|

17-03-2011, 20:33
|
|
Skywalker077
Newbie
|
|
Registriert seit: Dec 2007
Beiträge: 133
|
|
Lass eine Schleife durchlaufen, indem jedes Array geprüft wird ob dieseser Wert dadrin ist und arbeite dann mit diesem weiter =)
Ich als Anfänger würde auf diese Funktionen zurückgreifen:
in_array und
array_search
__________________
Leute die Angst vor dem Tod haben, sind Menschen die sich an einen Traum im Leben klammern
|

17-03-2011, 23:58
|
|
olli9000
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 22
|
|
jo danke, werds mal probieren... meld mich, wenns geklappt hat
|

18-03-2011, 18:47
|
|
olli9000
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 22
|
|
also ich hab mir jetzt etliche tutorials über arrays und foreach reingezogen, aber irgendwie komme ich hier nicht weiter.
foreach ($dateiinhalt as $texte) {
$termine[] = explode("|", $texte);
}
echo $termine[0][0]; //ausgabe: 20.03.2011
soweit funktioniert das. wenn ichs jetzt richtig verstanden habe, sind in $termine[0] meine einzelnen zeilen von der .txt enthalten und in $termine[0][0] der 1. index in der 1. zeile.
also kann ich somit immer auf den ersten wert von jeder zeile zugreifen. aber wie kann ich nun in allen zeilen (index 1) nach einer zeichenfolge suchen?? kann doch nicht sein, das ich für jede einzelne zeile eine if anweisung schreiben muss !? ^^
|

18-03-2011, 18:50
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von olli9000
wenn ichs jetzt richtig verstanden habe, sind in $termine[0] meine einzelnen zeilen von der .txt enthalten und in $termine[0][0] der 1. index in der 1. zeile.
|
Nicht raten, Testausgaben mit print_r() machen und nachsehen, ob es so ist.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

18-03-2011, 21:39
|
|
olli9000
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 22
|
|
Zitat:
Zitat von AmicaNoctis
Nicht raten, Testausgaben mit print_r() machen und nachsehen, ob es so ist.
|
es ist so. aber langsam bin ich mit meinem latein am ende... kann man mit "foreach" jedem index in einem array den gleichen schlüssel geben??
also z.b.:
array(
"key" => wert1
"key" => wert2
"key" => wert3
)
|

18-03-2011, 21:42
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Kann man, aber nur der letzte gewinnt. Also ist es nicht wirklich sinnvoll. Warum fragst du?
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

18-03-2011, 22:36
|
|
olli9000
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 22
|
|
also fasse ich nochmal kurz zusammen:
ich hab eine .txt datei mit dem inhalt:
20.03.2011|18.00|21.00|1
22.03.2011|19.00|22.00|2
in meiner php hab ich bis jetzt:
$dateiinhalt = file("datum.txt");
$feld1 = array("20.03.2011","19.00","22.00",1);
foreach ($dateiinhalt as $texte) {
list($a, $b, $c, $d) = explode("|", $texte);
$termine[] = array("Tag" => $a, "Beginn" => $b, "Ende" => $c, "Bahn" => $d);
}
jetzt würde ich gerne prüfen, ob $feld1[0] in einer zeile gefunden wird. um jetzt in jeder zeile danach zu suchen, könnte ich ja schreiben:
//suche in zeile 1
if($termine[0][0] == $feld1[0]){
//mach was
}
//suche in zeile 2
if($termine[1][0] == $feld1[0]){
//mach was
}
usw. aber das ist doch quatsch! was mach ich, wenn ich mehrere 100 zeilen hab!? bin ich echt der einzige mit diesem problem?
|

18-03-2011, 22:43
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Bitte benutze die Code-Tags!
Zu deiner Frage: Genau dafür hat man Schleifen erfunden. Du kannst also einfach dein Array mit foreach durchgehen und innerhalb dieser Schleife deine Prüfung machen. Das geht natürlich auch gleich in der ersten Schleife, mit der du ohnehin die Datei zeilenweise durchackerst.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

18-03-2011, 22:44
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von olli9000
bin ich echt der einzige mit diesem problem?
|
Nein, nur der einzige, der nicht auf die Idee kommt, das in einer Schleife zu machen ...
Du hast übrigens schon eine Schleife über die Zeilen, warum baust du das nicht gleich dort mit rein?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

18-03-2011, 23:00
|
|
olli9000
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 22
|
|
danke für die antworten. leider hab ich absolut keine ahnung, wie ich die bedingung für meine if formulieren soll...
|

18-03-2011, 23:09
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Na du hast doch die Werte aus der Zeile schon in $a, $b, $c und $d drin. Da sollte es doch jetzt sehr leicht möglich sein, das mit $feld1 zu vergleichen. Entweder blick ich nicht, was dein Problem ist, oder du solltest für heute Schluss machen und morgen weiterarbeiten, wenn du wieder fit bist.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

18-03-2011, 23:26
|
|
olli9000
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 22
|
|
PHP-Code:
foreach ($dateiinhalt as $texte) { list($a, $b, $c, $d) = explode("|", $texte); $termine[] = array("Tag" => $a, "Beginn" => $b, "Ende" => $c, "Bahn" => $d);
if (in_array($feld1[0], $termine)){ echo "gefunden "; } else { echo "nicht gefunden "; } }
ausgabe: nicht gefunden nicht gefunden
mache ich da irgendetwas falsch? krass, das für sowas simples nen halber tag draufgeht oder ich bin einfach nur zu dumm ^^
|

18-03-2011, 23:34
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Argh, wie wäre es denn mal mit sowas?:
PHP-Code:
if ($feld1[0] == $a) { // ... } // oder if ($feld1[1] == $b) { // ... }
Ich hab dir schonmal gesagt, du sollst Kontrollausgaben mit print_r machen, damit du siehst was wo drin steht. Wenn du stattdessen einen halben Tag anderen Blödsinn probierst, statt einfach mal ein paar print_r-Ausgaben einzubauen, kann ich dir auch nicht helfen.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

18-03-2011, 23:45
|
|
olli9000
Registrierter Benutzer
|
|
Registriert seit: Mar 2011
Beiträge: 22
|
|
jo danke, klappt soweit! man, da hätt ich auch echt mal selbst drauf kommen können
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|