php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.11.2011, 08:49  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard Wertepaare aus zwei Strings ermitteln

Folgende Situation - die beiden Strings bilden "gesamt" jeweils Paare.

PHP-Code:
$tiere "hund;katze;maus";
$namen "bello;mutzi;pipsi"
Und ich muss nun zB zu "hund" den Namen "bello" finden. Die Werte in $tiere sind jeweils "unique".

Mache das derzeit so:

PHP-Code:
$arrGesamt array_combine(explode(";"$tiere), explode(";"$namen))
echo 
$arrGesamt["hund"]; // gibt "bello" 
Was mir alternativ noch einfallen würde ...

PHP-Code:
$tiere "hund;katze;maus";
$namen "bello;mutzi;pipsi";

$keyTier array_search("hund"explode(";"$tiere))

$arrNamen explode(";"$namen)
echo 
$arrNamen[$keyTier
Was meint ihr? Gibt es noch eine bessere Variante, welche würdet ihr nehmen zB wegen Performance? Ich muss das Ganze derzeit ca. 400 mal in einer Schleife laufen lassen, mit jeweils unterschiedlichen "Fragen", kann die Daten-Struktur aber (derzeit jedenfalls) nicht beeinflussen/ändern.

Achja ... sorry für mein Denglisch hier..

LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.11.2011, 08:54  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Vom Prinzip finde ich die erste Variante effektiver.
Das würde ich noch in eine Funktion bzw. Methode (falls OOP) legen.
Ansonsten empfinde ich bei Verwendung der Vorgaben die Lösung als angebracht.

Allerdings, warum diese Vorgabe?
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 02.11.2011, 09:06  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Auslagern .. gute Idee, das werd ich noch machen, was ich gesehen hab brauch ich die eh an anderer Stelle auch noch.. muss ich aber noch im Detail anschauen.

Zitat:
Zitat von Arne Drews Beitrag anzeigen
Allerdings, warum diese Vorgabe?
Weil das DB-Design blöderweise nicht richitg normalisiert ist und ich ehrlich gesagt momentan nicht die Zeit und Lust habe die bereits bestehende "Applikation" umzukrempeln.. Das hat man davon wenn man es nicht von Anfang an richitg macht - weil man froh ist das es "irgendwie" läuft Tja, "damals" war ich noch nicht ganz so weit wie jetzt.
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 02.11.2011, 09:36  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Nur mal ein allgemeines Beispiel, muss man ja nicht so machen:
PHP-Code:
abstract class ArrayWrapper {
  
  private static 
$Array = array();
  
  
  public static function 
addStringPairs$keys$values ) {
    
$addArr array_combineexplode(';'$keys), explode(';'$values) );
    
self::$Array array_mergeself::$Array$addArr );
  }
  
  
  public static function 
find$arrKey ) {
    return isset( 
self::$Array[$arrKey] )? self::$Array$arrKey ]: null;
  }
  
}


$tiere 'hund;katze;maus';
$namen 'bello;mutzi;pipsi';


ArrayWrapper::addStringPairs$tiere$namen );
echo 
ArrayWrapper::find'hund' ); 
Das hätte den Vorteil, daß Du über die Methode addStringPairs() neue Paare hinzufügen kannst, die bestehenden allerdings erhalten bleiben, solltest Du diese noch mal verwenden müssen:
PHP-Code:
$tiere 'hund;katze;maus';
$namen 'bello;mutzi;pipsi';

$lollies 'waldmeister;erdbeere;pflaume';
$farben 'grün;rot;blau';


ArrayWrapper::addStringPairs$tiere$namen );
ArrayWrapper::addStringPairs$lollies$farben );

echo 
ArrayWrapper::find'hund' ) . '<br />';
echo 
ArrayWrapper::find'pflaume' );

// Ausgabe: bello und blau 
Aber wie gesagt, war jetzt nur so'n Gedanke, wie es in Dein Projekt reinpasst und ob überhaupt, weiß ich natürlich nicht...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 02.11.2011, 09:52  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Danke, interessanter Ansatz.. Ein ergänzendes hinzufügen ist aktuell nicht nötig.. Find deinen Code trotzdem echt interessant...

Ich bekomme diese Fragen/Antworten Strings jeweils aus 2 Felder der DB und muss in der Schleife diese beiden dann in ebendiese Relation bringen um damit gewisse "Auswertungen" machen zu können. Aber dann immer nur mit den jeweiligen Werten des aktuellen Schleifendurchlaufes.

Code:
// durchlauf 1...
Feld1 'hund;katze;maus'; 
Feld2 'bello;mutzi;pipsi'; 
Operationen

// durchlauf 2...
Feld1 'waldmeister;erdbeere;pflaume'; 
Feld2 'grün;rot;blau'; 
Operationen


// durchlauf 3...
Feld1 'Berlin;Hamburg;Bremen'; 
Feld2 '5;8;3'; 
Operationen


// etc..
Frage am Rande .. warum "abstract" class?
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 02.11.2011, 10:00  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Zitat:
Frage am Rande .. warum "abstract" class?
...nur, damit Du kein Objekt instanziieren musst, aber globale Verfügbarkeit (static) benötigst.
Zitat:
Ich bekomme diese Fragen/Antworten Strings jeweils aus 2 Felder der DB und muss in der Schleife diese beiden dann in ebendiese Relation bringen um damit gewisse "Auswertungen" machen zu können. Aber dann immer nur mit den jeweiligen Werten des aktuellen Schleifendurchlaufes.
Nun ist die Frage, ob sich ein Workaround dafür lohnt, das mußt Du selbst entscheiden.
Für den Fall kannst Du es dennoch so nutzen oder wenn Du gern möchtes einfach die Methode addStringPairs abändern:
PHP-Code:
  public static function addStringPairs$keys$values ) {
    
self::$Array array_combineexplode(';'$keys), explode(';'$values) );
  } 
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein

Geändert von Arne Drews (02.11.2011 um 10:07 Uhr). Grund: static zugefügt
Arne Drews ist offline   Mit Zitat antworten
Alt 02.11.2011, 22:53  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
kann die Daten-Struktur aber (derzeit jedenfalls) nicht beeinflussen/ändern.
Wie genau sind die Daten denn abgelegt?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 03.11.2011, 08:09  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Code:
mysql:
frage | antwortMoeglichkeiten | richtigeAntwort | PunkteRichtigeAntwort
Beispiel:
frage: Welches Team gewinnt den Cup?
antwortMoeglichkeiten: FC BallaBalla;SV Kuglrund;Schiesser SV
PunkteRichtigeAntwort: 5;3;8
richtigeAntwort: SV Kuglrund

=> Alle User die auf SV Kuglrund getippt haben bekommen dafür 3 Punkte.

Normalisierung wäre hier sicher das Beste, keine Frage, ich hätte auch hier http://www.php.de/datenbanken/84975-...tml#post628591 ([Erledigt] DB-Design für kleines Quiz gut so?) schon damit begonnen. Allerdings hab ich noch das Szenario das es auch mehr richtige geben kann (zB wer schiesst die meisten Tore) und für die beiden das DB-Design und alles hinten nach umkrempeln ist mir momentan zu steil.


LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist
hausl ist offline   Mit Zitat antworten
Alt 03.11.2011, 08:14  
Erfahrener Benutzer
 
Benutzerbild von Arne Drews
 
Registriert seit: 22.04.2009
Beiträge: 3.486
PHP-Kenntnisse:
Anfänger
Arne Drews wird schon bald berühmt werdenArne Drews wird schon bald berühmt werden
Arne Drews eine Nachricht über Skype™ schicken
Standard

Wieso ist die Punkteanzahl für die richtige Antwort abhängig von der richtigen Antwort selbst...
__________________
Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.
Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
Albert Einstein
Arne Drews ist offline   Mit Zitat antworten
Alt 03.11.2011, 08:35  
Erfahrener Benutzer
 
Registriert seit: 03.08.2010
Beiträge: 1.141
PHP-Kenntnisse:
Anfänger
hausl wird schon bald berühmt werdenhausl wird schon bald berühmt werden
Standard

Soweit ich den "Konzeptor" verstanden habe will der damit eine Art Quote darstellen, um gegebenfalls die Favoritenrolle zu kompensieren, das man bei einen Tipp auf einen Favoriten weniger Punkte bekommt als bei einem Aussenseiter.
=> Natürlich immer vorausgesetzt der Tipp ist richitg..

FC Barcelona (3) - SV Waldmeister (5)
Wer gewinnt?

Tippst Du Waldmeister und die gewinnen tatsächlich bekommste 5 Punkte.. tippst Du auf Barcelona und die gewinnen (was sehr warscheinlich ist) bekommste "nur" 3 Punkte.

Natürlich können es auch idente Punkte sein, wird auch bei den meisten Fragen so sein.

LG
__________________
Keine Zahl != ein Zeichen das keine Zahl ist

Geändert von hausl (03.11.2011 um 08:39 Uhr).
hausl ist offline   Mit Zitat antworten
Antwort


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
[Erledigt] länge eines strings ermitteln &amp; zeilenanzahl berechnen Zulakis PHP Einsteiger 5 10.07.2011 13:48
wie Ordnergröße ermitteln (filesize) ColeThornten PHP Einsteiger 3 10.01.2011 21:34
[Erledigt] Upload: Dateigröße VOR Start des Uploads ermitteln tobobant JavaScript, Ajax und mehr 9 18.12.2010 20:00
Strings numerisch umwandeln xm22 Software-Design 8 15.12.2010 20:02
[Erledigt] Umlaut-Varianten eines Strings ermitteln dazze PHP-Fortgeschrittene 34 26.11.2008 16:46
Einzeltreffer von MATCH ... AGAINST ... ermitteln proud Datenbanken 3 09.05.2008 08:31
Google Adwords - echten Referer ermitteln NetLook PHP Tipps 2006 2 12.05.2006 08:40
doppelte Werte / Strings einer Spalte nur einmal ausgeben... Datenbanken 2 29.07.2005 12:10
build nummer des bs ermitteln ... nur bei microsoft's bs!!! PHP Tipps 2005-2 2 24.07.2005 15:59
Besucher mit den meisten GB Einträgen ermitteln! Datenbanken 7 21.04.2005 12:09
alle Positionen eines Strings innerhalb eines Strings finden PHP Tipps 2005 8 23.02.2005 20:21
CRC Summe einer Datei ermitteln?? PHP Tipps 2004 1 14.10.2004 09:23
[Erledigt] Strings saeubern PHP Tipps 2004 2 12.10.2004 15:52
[Erledigt] Tabellenname eines Feldes ermitteln PHP-Fortgeschrittene 3 22.09.2004 15:49
Referrer ermitteln? PHP Tipps 2004 8 13.09.2004 13:43

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php wertepare als string, php zwei stings

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:19 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