php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.03.2010, 08:43  
Neuer Benutzer
 
Benutzerbild von <?PHP//Ahhhja?>
 
Registriert seit: 27.03.2010
Beiträge: 4
PHP-Kenntnisse:
Anfänger
<?PHP//Ahhhja?> befindet sich auf einem aufstrebenden Ast
Standard Schleifen Problem mit den Arrays - Logikproblem

Hallo,

ich sag es gleich, ich habe die Grundlagen schon gelesen aber nicht gerafft.
Nun habe ich mir zum Thema Arrays und schleifen mir folgende Aufgabe gestellt
(siehe die Kommentare).
Mit Variablen habe ich so kein Problem damit komme ich klar. Aber mit Arrays siehts schon schlimmer aus.
Sinn des ganzen ist das ich alle Namen in den Arrays vergleichen kann. Aber die Unterschiede feststellen.
als Beispiel
Moni ist in der Gruppe A und C aber nicht in Gruppe B = -Falsch, Zeige mir den Namen an
Alex ist in Gruppe A und B und C = Richtig / dort vorhanden - hat alles seine Ordnung, braucht man nicht ausgeben
Alex ist in Gruppe A und B = auch Richtig / dort vorhanden - hat alles seine Ordnung, braucht man nicht ausgeben

PHP-Code:
<html>
<body>
<?php
/* um was es hier gehen soll
* alle Mitglieder sind in gruppe a
* einige von denen sind vielleicht auch zusätzlich in gruppe b und c
* bestimmte mitglieder sollen aber nur in c sein, wenn sie auch in
* gruppe b sind
* aufgabe: suche mir alle mitglieder die in c sind aber
* nicht in  b sind.
*/
$mitgliederA = array("magda""leo""tobi""achim""olaf""sven""gerda""ulli");
$mitgliederB = array("magda""tobi""olaf""sven""gerda""ulli");
$mitgliederC = array("magda""leo""olaf""sven""gerda");

//Mein erster Lösungsansatz
if ($mitgliederB != $mitgliederA AND   $mitgliederB != $mitgliederC)
while (
$mitgliederB <= $mitgliederC)
  {
  echo 
'Folgende Mitglieder sind in Gruppe B und auch C <br /> ';
  echo 
$mitglieder// <-- hier bin ich geistig ausgestiegen
  
}

//mein zweiter Gedankenansatz
if (in_array($mitgliederA$mitgliederC)){
  echo 
'ist nicht dabei';
  }
  else
  {
    echo 
'ist dabei<br />';
    
// Ja wer denn eigentlich?
  
}

// mein dritter Gedankengang, klappt nicht da wieder alle da sind
foreach ($mitgliederA as $key => $name)
  {
  
$mitgliederA[$key] = $name;
  echo 
'dabei ist ';
  echo 
"$name<br>";
  }

/*Erkenntnis:
* ich muss erstmal aus dem array $mitgliederA die Namen raus holen und dann
* erst vergleichen
*/
?>
</body>
</html>
Mein Problem ich weiß nicht wann ich was machen muss, das wie weiß ich, aber ich kann mangels Knowhow nicht wissen wann ich was mache.
Folgende Anlaufstellen hatte ich angesteuert,
- Schattenbaum
-tut.php-quake.net
-peterkropff.de/site/php/
-php-einfach.de
-php-kurs.com

Ich möchte von Euch jetzt nicht die 100% Lösung haben, sondern eher eine Erklärung wie man am besten an die Sache ran gehen sollte. Logische Denkweise in Schritten und so. Irgendwie brauche ich das doch um effektiver rum programmieren zu können. Falls ich ganz falsch an die Sache ran gegangen bin sagt mir das doch bitte auch.
(zB. Vielleicht hätte ich switch statt while nehmen sollen?)

Danke jedenfalls schon mal fürs lesen, Ich hoffe ich habe alles so optimal für Euch dargestellt wie es nur möglich ist.

edit: PS: wie kann ich Mister Ad in meine Ignorre List einfügen?
edit2: Werte in den Arrays in " gesetzt.

Geändert von <?PHP//Ahhhja?> (28.03.2010 um 10:58 Uhr). Grund: Post Scriptum angefügt
<?PHP//Ahhhja?> ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.03.2010, 09:55  
Benutzer
 
Registriert seit: 31.05.2009
Beiträge: 56
PHP-Kenntnisse:
Fortgeschritten
OneMercy befindet sich auf einem aufstrebenden Ast
Standard

Tut mir leid, aber du brauchst die Grundlagen, ganz dringend. Wenn du das noch nicht verstanden hast, lies es dir nocheinmal durch.

Zitat:
Mein Problem ich weiß nicht wann ich was machen muss, das wie weiß ich, aber ich kann mangels Knowhow nicht wissen wann ich was mache.
Und genau das kommt dann schon von alleine.

Zitat:
Folgende Anlaufstellen hatte ich angesteuert,
- Schattenbaum
-tut.php-quake.net
-php-einfach.de
Such dir eines heraus und arbeite es komplett durch. Immer lesen und gleich danach ausprobieren. Sonst wird das nichts.

Zitat:
(zB. Vielleicht hätte ich switch statt while nehmen sollen?)
Das sind zwei vollkommen unterschiedliche Dinge. while ist eine Schleife, die wird - sofern die Begindung in der Klammer erfüllt ist - mehrmals ausfeführt. switch dient zur Fallunterscheidung.

Die Stings (in den Arrays) gehören in Anführungszeichen.

Zu deinen Gedankengängen:
PHP-Code:
if ($mitgliederB != $mitgliederA AND   $mitgliederB != $mitgliederC)
while (
$mitgliederB <= $mitgliederC)
  {
  echo 
'Folgende Mitglieder sind in Gruppe B und auch C <br /> ';
  echo 
$mitglieder// <-- hier bin ich geistig ausgestiegen
  

Aua! $mitgliederA, $mitgliederB und $mitgliederC sind ganz unterschiedliche Arrays, natürlich sind die nicht gleich (!=). Die while-Schleife ist mir dann aber auch irgendwie zu hoch. Du vergleichst 2 Arrays. Da könnte ich dich genauso gut fragen: "Ist Auto größer gleich Bier?"

PHP-Code:
if (in_array($mitgliederA$mitgliederC)){
  echo 
'ist nicht dabei';
  }
  else
  {
    echo 
'ist dabei<br />';
    
// Ja wer denn eigentlich?
  

in_array() schaut, ob ein Element in einem Array enthalten ist. Da du 2 Arrays mitgibst, kann das gar nichts werden.

Eigentlich brauche ich gar nicht mehr weiter zu machen. Was dein Ziel ist habe auch noch nicht so wirklich verstanden. Tu dir bitte selbst einen Gefallen und http://www.php.de/php-einsteiger/489...rundlagen.html.
OneMercy ist offline  
Alt 28.03.2010, 10:27  
Neuer Benutzer
 
Benutzerbild von <?PHP//Ahhhja?>
 
Registriert seit: 27.03.2010
Beiträge: 4
PHP-Kenntnisse:
Anfänger
<?PHP//Ahhhja?> befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von OneMercy Beitrag anzeigen
Tut mir leid, aber du brauchst die Grundlagen, ganz dringend. Wenn du das noch nicht verstanden hast, lies es dir nocheinmal durch.

... Und genau das kommt dann schon von alleine.
Mach ich versprochen !
Ich habe nur manchmal die Befürchtung das einiges "unstimmig" sein könnte.
Weil Seite "A" so schreibt Seite "B" aber wieder so rum, und Seite "C" wieder komplett anders.

Zitat:
Zitat von OneMercy Beitrag anzeigen
Die Stings (in den Arrays) gehören in Anführungszeichen.
Ohje hast recht ein ganz derbes "Aua", so ist ja alles gleich zum scheitern verurteilt.

Zitat:
Zitat von OneMercy Beitrag anzeigen
Zu deinen Gedankengängen:
PHP-Code:
if ($mitgliederB != $mitgliederA AND   $mitgliederB != $mitgliederC)
while (
$mitgliederB <= $mitgliederC)
  {
  echo 
'Folgende Mitglieder sind in Gruppe B und auch C <br /> ';
  echo 
$mitglieder// <-- hier bin ich geistig ausgestiegen
  

Aua! $mitgliederA, $mitgliederB und $mitgliederC sind ganz unterschiedliche Arrays, natürlich sind die nicht gleich (!=). Die while-Schleife ist mir dann aber auch irgendwie zu hoch. Du vergleichst 2 Arrays. Da könnte ich dich genauso gut fragen: "Ist Auto größer gleich Bier?"
Nun ich nahm an von der (meiner) Logik her das ich Arrays vergleichen kann und mir Differenzen ausgeben könnte.
Zitat:
Zitat von OneMercy Beitrag anzeigen
PHP-Code:
if (in_array($mitgliederA$mitgliederC)){
  echo 
'ist nicht dabei';
  }
  else
  {
    echo 
'ist dabei<br />';
    
// Ja wer denn eigentlich?
  

in_array() schaut, ob ein Element in einem Array enthalten ist. Da du 2 Arrays mitgibst, kann das gar nichts werden.
Ich dachte das die Werte die im Array $mitgliederA sind, zum Vergleich von $mitgliederC heran genommen werden können.
Natürlich hätte ich statt $mitgliederA den Namen einzeln eintragen können
Hätte ich 1655 Namen, müsste ich dann 1655 "if (in_array" Bedingungen basteln?

In etwa so
PHP-Code:
if (in_array"Ulli"$mitgliederC)){
  echo 
'ist nicht dabei';
  }
  else
  {
    echo 
'ist dabei<br />';
   } 
if (
in_array"Leo"$mitgliederC)){
  echo 
'ist nicht dabei';
  }
  else
  {
    echo 
'ist dabei<br />';
   } 
... 
Dann will ich doch lieber eine Schleife Statt das X-Fache

Zitat:
Zitat von OneMercy Beitrag anzeigen
Was dein Ziel ist habe auch noch nicht so wirklich verstanden.
Ok nochmal anders

Ziel: Alle Namen ausgeben die in Array $mitgliederC sind aber nicht im Array $mitgliederB. Alle Namen die "existieren" sind im Array $mitgliederA
-
Tut mir wirklich Leid das meine Fragen noch unterstes Niveau sind.

Geändert von <?PHP//Ahhhja?> (28.03.2010 um 14:15 Uhr).
<?PHP//Ahhhja?> ist offline  
Alt 28.03.2010, 11:09  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ich verschiebe das jetzt mal wieder zurück, unter der Bedingung, dass du dir unseren Grundlagen-Thread durchliest und versuchst, dein Problem anhand der genannten Quellen selbst zu lösen.

Mr. Ad verschwindet übrigens irgendwann von selbst. Ihn auf de Ignore-List zu setzen halte ich übrigens nicht fair den Beitreibern dieses Forums gegenüber.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline  
Alt 28.03.2010, 13:02  
Neuer Benutzer
 
Benutzerbild von <?PHP//Ahhhja?>
 
Registriert seit: 27.03.2010
Beiträge: 4
PHP-Kenntnisse:
Anfänger
<?PHP//Ahhhja?> befindet sich auf einem aufstrebenden Ast
Standard

Hallo Manko und anderen Mods,

wie ich schon schrieb habe ich die Grundlagen mir zu Gemüte geführt aber nicht verstanden.
Die funktionierende Ideallösung zu mein Problem ist das hier
PHP-Code:
foreach($mitgliederC as $name) {
    if(
in_array($name$mitgliederB)) {
        
// aktuelles Element ist in $mitgliederB enthalten
    
} else {
        
// aktuelles Element ist nicht in $mitgliederB enthalten
        
echo $name '<br />';
    }

Sind aber nicht meine Lorbeeren sondern die von Mercy - danke an der Stelle.

Das Problem ist das man mit seinen eigenen Problemen wie ein Ochs vorm Berg steht und den Wald vor Lauter Bäumen nicht sieht.

Guckt man sich die Grundlagen an die ich mir her (siehe oben ) genommen habe
Funktioniert das alles gut mit Variablen kombiniert man das mit Arrays muss erst mal der Funke überspringen.
das habe ich mit php-quake
versucht aber auch mit Schattenbaum
Zitat:
Mit foreach wird jeder Wert des Arrays vorrübergehend einer Variable zugeordnet und dann zB gelistet. Der Name der Variable wird durch den Befehl as angegeben.
PHP-Code:
  <?php
  
foreach($blumen as $meine_blume)
    echo 
$meine_blume,"<br>";
  
?>
Die Liste würde dann so aussehen:
Rose
Tulpe
Nelke
Sonnenblume
Auch php-einfach erklärt das an einem Beispiel
Zitat:
Beide Varianten funktionieren einwandfrei, aber es gibt noch eine 3. Schleife: foreach
PHP-Code:
<?php
$mitarbeiter 
= array("Bob","Peter","Lisa");

echo 
"Foreach-Schleife: <br>";
foreach(
$mitarbeiter AS $name)
   {
   echo 
$name."<br>";
   }
?>
Im Schleifenkopf definieren wird, dass die Werte in $name gespeichert werden soll. Unter dieser Variable können wir dann innerhalb der Schleife auf den jeweiligen Namen des Mitarbeiters zugreifen.
Im Bezug muss man aber erstmal darauf kommen, das man eine foreach Schleife macht dann erst die Bedingungen daran knüpft.
Kombinationsgabe. Ok soweit lächerlich werden die Erfahrenen /Schnellbegreifer unter Euch sagen.
Gut, drum schrieb ich ja
Zitat:
Ich möchte von Euch jetzt nicht die 100% Lösung haben, sondern eher eine Erklärung wie man am besten an die Sache ran gehen sollte. Logische Denkweise in Schritten und so. ....Falls ich ganz falsch an die Sache ran gegangen bin sagt mir das doch bitte auch.
Ich finde das mit dem "lerne Grundlagen" soweit ok, sollte aber nicht die Klatsche für alle sein, denn wäre genauso wen man als 5 Jähriger oder Analphabet mit einem aus den Nachbarland reden möchte und man erkennt das es an der Sprache hapert und sich eine Stelle zur Hilfeleistung(Schule/Mama was auch immer) sucht und dort Ein Zettel bekommt wo folgendes drauf steht:

Wörterbücher:
  • Langenscheidts "Sprache" - Deutsch | Deutsch - "Sprache"
  • Sprachwörterbuch "X"
  • Nachschlagewerk "Y"
Tutorials:
  • Französisch für Dummies
  • Spanisch in 31 Tagen
  • Tutorial für Einsteiger in Englisch
Problem: einem Analphabet bringt das nix genauso wie ein Kind oder wenn wie ich begriffsstutzig bin oder was auch immer.

Oder noch abstrakteres Beispiel?
Ich verteile die Bedienungsanleitungen von Taschenrechner X oder Y auf Webseite xy.
Und ich erwarte dann das es bei jedem "Klick" macht und setze voraus das jeder zumindest die Dichte [Formeln&Masse natürlich inkl.] von Bewehrung & Beton selbständig ausrechnen kann, damit man im Forum "Statik von Bogenbrücken" überhaupt die einfachsten Fragen stellen darf.....

Aber darüber hinaus, wer sagt mir welche "Grundlage" für Newbies wie mich besten sei, oder aktuell und Stand der Dinge ist und oder überhaupt richtig?

Ich habe einen langen Weg vor mir und noch viele Schritte zu gehen. Und ich bin froh das es solche Foren wie dieses hier mit all sein freiwilligen Helfern gibt, wo man auch, in euren Augen, die blödesten Fragen stellen kann.
Andernfalls - ja nehme ich SuMa "X" und sperrt hier die blutigsten Newbies aus.

Zum Thema "Beitrag verschoben in Beanstandete und zu überarbeitende Beiträge"
Dieses Vorgehen ist soweit in Ordnung
Dann guckt man sich folgende Punkte an
Zitat:
* Ein unzureichender Titel. Siehe dazu: Bitte aussagekräftige Threadtitel verwenden
* Eine unverständliche Beschreibung oder grob fahrlässige Grammatik
* Eine fehlende Problembeschreibung
* unformatierte oder unkonkrete Code-Postings
* deutlich fehlende Eigeninitiative
Die Fragen die sich dann einen Neuen stellen können
War der Titel in Ordnung?
Problemstellung/Beschreibung/Grammatik ok gewesen?
war der Code Posting unter aller Sau gewesen?
Eigeninitiative - was wird erwartet ??? Grundlagen? Die Referenzen und Tuts kennen?
Wenn ja, wäre der Thread nicht nötig gewesen, andernfalls ist dann das Anliegen in "programmieren für Fortgeschrittene" Kategorie besser aufgehoben.
In meinen Fall mit diesen Thread habe ich den Titel von
"das Schleifentheater eines Newbies mit den Arrays"
in
Schleifen Problem mit den Arrays - Logikproblem
geändert und die Arrays mit "" versehen.

Mein konstruktiver Vorschlag wäre:
Kennzeichnet wenigstens das Thema mit einen Präfix oder so was nicht stimmt,
eine oder 4,5 Checkboxen sind doch schnell geklickt.

Versteht diesen Beitrag nicht als böse oder angreifen oder oder.
Sondern nur wie es die Leute von der anderen Seite sehen, die noch "Neu" sind.

Euch allen einen schönen Sonntag noch

Geändert von <?PHP//Ahhhja?> (28.03.2010 um 14:04 Uhr).
<?PHP//Ahhhja?> ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
NUSOAP Request und Problem mit assoziativen Arrays tuxnisi PHP-Fortgeschrittene 2 11.04.2010 15:31
inhalt eines problem - arrays kürzen bzw. einer variablen zuweisen geuloth PHP Tipps 2010 6 27.02.2010 18:05
Problem mit multidimensonalen Arrays werwurm01 PHP Tipps 2009 6 28.09.2009 15:38
Datenbank Problem: Arrays speichern und auslesen funbox Datenbanken 5 16.05.2009 12:33
Problem mit mehrdimensionalen Arrays Nikinator PHP Tipps 2009 16 10.03.2009 15:56
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
[Erledigt] Problem mit Referenzen auf Arrays PHP-Fortgeschrittene 4 16.09.2005 23:13
[TEMPLATEENGINE] Problem mit dem Parsen von Arrays imported_Ben PHP-Fortgeschrittene 5 30.07.2005 11:07
Problem mit arrays..füllen PHP Tipps 2005-2 4 22.07.2005 14:02
While Schleifen Problem PHP Tipps 2005 9 22.05.2005 22:35
problem mit schleifen PHP Tipps 2005 11 23.04.2005 14:59
Verständnis Problem bei Übergabe von Arrays imported_dex PHP Tipps 2005 2 05.03.2005 18:03
Problem beim Auslesen eines Arrays aus Sql db PHP Tipps 2004 23 24.09.2004 09:39
While schleifen problem PHP Tipps 2004 8 19.09.2004 17:48
[Erledigt] Schleifen Problem :( PHP Tipps 2004 1 27.07.2004 17:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php foreach element überspringen, php in_array bedingung variable in schleife, logikproblemen erste ordnung, \php-kurs\ \peterkropff\

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:35 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum