php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.10.2011, 09:48  
Neuer Benutzer
 
Registriert seit: 09.10.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
SaschaBoemken befindet sich auf einem aufstrebenden Ast
Standard Exponentielle Kombination von Wertpaaren

Guten Morgen liebe Mitstreiter,

ich habe im Online-Shop einen Varianten-Artikel. Der Kunde kann zwischen zwei Farben und drei Anhlüssen, also insgesamt 6 Varianten wählen:

1:2 = Farbe: weiss
1:17 = Farbe: schwarz

2:3 = Anschluss parallel
2:5 = Anschluss USB
2:4 = Anschluss RS232

Aus vorangestellten Wertpaaren sollen nun in die möglichen 6 Kombinationen erzeugt werden:

1:2 + 2:3 = weiss, parallel,
1:2 + 2:5 = weiss, USB
1:2 + 2:4 = weiss, RS232

1:17 + 2:3 = schwarz, parallel,
1:17 + 2:5 = schwarz, USB
1:17 + 2:4 = schwarz, RS232

Dies ist nur ein einfaches Beispiel. Es gibt auch Artikel mit 8 x 4 Varianten.

Ich hab mir die halbe Nacht die umme Ohren gehauen, komme aber nicht einmal ansatzweise in die Nähe einer Lösung. Vielleicht denke ich mal wieder viel zu kompliziert.

Hat jemand von euch einen Lösung oder zumindest einen Denkanstoss für mich?

Einen Dank im Voraus,
Sascha
SaschaBoemken ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 09.10.2011, 11:27  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
komme aber nicht einmal ansatzweise in die Nähe einer Lösung
Lösung für was ???
Machs eben über ne config als Textdatei und Arrays/foreach.

Oder alle Variationen in der DB ablegen.

Aber wie gesagt: ich weiß gar nicht für was Du ne Lösung suchst.
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist offline   Mit Zitat antworten
Alt 09.10.2011, 11:47  
Neuer Benutzer
 
Registriert seit: 09.10.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
SaschaBoemken befindet sich auf einem aufstrebenden Ast
Standard

Nehmen wir ein anderes anschaulicheres Beispiel:
Ich habe Unmengen von Obst. Davon 2 verschiedene Apfelsorten und 3 verschiedene Birnensorten. Das Ziel: Ich muss jeweils einen Apfel und eine Birne in eine Kiste packen. Keine Kisten darf aber eine gleiche Apfel-/Birnen-Sorte enthalten.
SaschaBoemken ist offline   Mit Zitat antworten
Alt 09.10.2011, 11:56  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

was verstehst Du daran nicht ?
Zitat:
Machs eben über ne config als Textdatei und Arrays/foreach.

Oder alle Variationen in der DB ablegen.
PHP-Code:
$aepfel = array('mostkopf''delicious');

$birnen = array('hohlbirne''sparbirne''blitzbirne');

$res = array();

foreach(
$aepfel as $key => $value){

   foreach(
$birnen as $key1 => $value1){

      
$res[] = array($value$value1);
   }
}

echo 
'<pre>';
print_r($res);
echo 
'</pre>'
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

Geändert von Koala (09.10.2011 um 12:01 Uhr).
Koala ist offline   Mit Zitat antworten
Alt 09.10.2011, 12:01  
Erfahrener Benutzer
 
Registriert seit: 26.12.2010
Beiträge: 175
PHP-Kenntnisse:
Anfänger
elise befindet sich auf einem aufstrebenden Ast
Standard

ähm... du meinst einfach verschachtelte Schleifen?
die äußere nimmt deine Birnen
die innere deine Äpfel...

also ein kartesisches Produkt.
__________________
OSL♥
elise ist offline   Mit Zitat antworten
Alt 09.10.2011, 12:04  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

nein - die Äpfel sind immer außen,
nennt man auch das Äppelprinzip.
__________________
Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.
Koala ist offline   Mit Zitat antworten
Alt 09.10.2011, 14:21  
Neuer Benutzer
 
Registriert seit: 09.10.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
SaschaBoemken befindet sich auf einem aufstrebenden Ast
Standard

Danke für das Codebeispiel Koala!

Das ganze müsste allerdings rekursiv funktionieren, da es z.b. auch Varianten-Artikel mit bis zu zehn Varianten gibt. Und bei jeden Artikel sind das andere Varianten. Bei Druckern meist nur Farbe und Anschlussart. Bei Kassensystemen kommen noch etliche andere Optionen hinzu: mit/ohne Magnetkartenleser, HDD oder SSD, Hauptspeicher (4fach Auswahl), Kundendisplay, etc.

Das liesse sich dann mit verschachteltem foreach vermutlich nicht lösen.
SaschaBoemken ist offline   Mit Zitat antworten
Alt 09.10.2011, 15:18  
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

Und wie wird das dann angeboten? Als Select? Das finde ich total furchtbar gelöst. Wieso nicht zwei Auswahlen für 2 Features? Das ist doch viel logischer, benutzerfreundlicher und schließlich auch flexibler, wenn es bspw. den schwarzen Drucker nicht mit Netzwerkanschluss gibt. Du scheinst schon jetzt eine Sackgasse zu betreten.
__________________
--
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 09.10.2011, 15:54  
Neuer Benutzer
 
Registriert seit: 09.10.2011
Beiträge: 8
PHP-Kenntnisse:
Anfänger
SaschaBoemken befindet sich auf einem aufstrebenden Ast
Standard

Ein Kunde kann sich im Shop z.B. diesen Varianten-Artikel nach seinen Bedürfnissen zusammenstellen:
http://kassen.net/hp-ap5000-allinone...-1-p-2526.html

Jede Eigenschaft (Ausstattung, Betriebssystem, Garantieoption) hat 2-3 wählbare Optionen. In diesem Fall gibt es 3 Eigenschaften mit insgesamt 8 Optionen = 24 Varianten. Jede Eigenschaft und jede Option hat eine ID in der Datenbank.

Im Backend versuche ich nun eine serialisierte Liste zu erzeugen, die die IDs aller 24 Varianten paarweise (Eigenschafts-ID:Options-ID) abbildet.
SaschaBoemken ist offline   Mit Zitat antworten
Alt 09.10.2011, 17:37  
Erfahrener Benutzer
 
Registriert seit: 26.12.2010
Beiträge: 175
PHP-Kenntnisse:
Anfänger
elise befindet sich auf einem aufstrebenden Ast
Standard

ein etwas unverständlicher Algo, Sonntag halt

PHP-Code:
<?php
        
 $apples
=array("boskop""jonagold""elstar""braeburn");
 
$pears=array("helene""conference""rocha");
 
$cars=array("ford""bmw""mercedes");
 
$animals=array("baer""affe""eule");
 
 
$all = array($apples$pears$cars$animals);
 
 
$end=array();

 function 
kartese ($a) {
 
    if(
count($a)>1){
    
        
$temp=array();
        
        foreach (
$a[0] as $v1
            foreach (
$a[1] as $v2
                
$temp[]=$v1 " - " $v2;
        
        global 
$end;
        
$end=$temp;
        
        if(!
is_array($a[2]))
            return;

        
$new_a = array();
        
$new_a[]=$temp;

        
        for(
$y=2$y<count($a); ++$y) {
            
$new_a[]=$a[$y];
        }
        
        
kartese($new_a);
    }
 }
 
kartese ($all);

foreach (
$end as $v)
    echo 
$v "<br />";

?>
__________________
OSL♥
elise 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
mehrseitiges Formular in Kombination mit Datenbanken Ineffizienz PHP Einsteiger 13 20.06.2011 01:59
PHP in Kombination mit Javascript Extremefall PHP Tipps 2010 4 26.08.2010 20:17
Alle Links einer Seite - Kombination aus preg_match und str_pos ACiD PHP Tipps 2010 0 22.06.2010 14:40
Fehlerbehandlung beim Type Hinting in Kombination mit method chaining nuna PHP Tipps 2010 5 21.05.2010 18:04
zufalls zahlen kombination Marti95. PHP Tipps 2009 34 23.02.2009 20:21
[Erledigt] imagettftext funktioniert in reinem PHP-Script, nicht in Kombination mit H o2t2 PHP Tipps 2009 7 17.02.2009 12:11
Akuelle Monat Jahr Kombination ermitteln tschekowski PHP Tipps 2008 11 26.09.2008 10:19
Kombination: Zeichen zählen / - ersetzen King2k PHP Tipps 2005-2 2 24.10.2005 20:44
genaue zeit mit javascript (in kombination mit PHP) chiliGREEN HTML, Usability und Barrierefreiheit 5 13.09.2005 02:19
header("Location: xyz") in Kombination mit if-clau winfo_cologne PHP Tipps 2005-2 14 12.09.2005 12:33
[Erledigt] Kombination von mehreren Arrays PHP-Fortgeschrittene 27 18.02.2005 23:33
Kombination von back und reload PHP Tipps 2004-2 5 23.11.2004 10:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php kombinatorik, hp ap5000 all-in-one kassensystem (typ 1), wie viele kombinationen array

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