2Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
364
364
EMPFEHLEN
-
Guten Abend liebe Comm,
ich habe wiedermal ein kleines Problem und leider komme ich an dieser Stelle nicht weiter.
zu den Gegebenheiten:
ich habe ein Formular für die vorauswahl "multiple"
dort stehen z.b. 5 werte wovon eines aber auch 5 ausgewählt werden können.
nennen wir sie value1 - value5.
diese werden per $_POST übergeben und stehen in einem array.
in der nächsten php habe ich nun schon vordefinierte arrays
nun möchte ich das die per $_POST übergebenen Werte im bsp. value2 und value4PHP-Code:$value1 = array( 'bla', 'blubb');
$value2 = array( 'blubb', 'kaese');
$value3 = array( 'bla', 'blubb', 'alien');
$value4 = array( 'bla', 'maus');
$value5 = array( 'iltis');
merged werden.
es soll zuPHP-Code://sieht beispielsweise so aus zur veranschaulichung:
$uebergabe = array('value2', 'value4');
hab es bereits mit einer foreach Schleife versucht das $ davor zu bekommen aber das wird dann nicht als Verweiß zu den vorhanden Arrays erkannt.PHP-Code:$merged = array_merge ($value2, $value4);
vielen Dank für Hilfreichen tips.
liebe grüße
-
Bin nun einen anderen weg gegangen und Durchsuche das Array auf Inhalt mit:
codebeispiel falls jemand das selbe problem haben sollte:
PHP-Code:$merged = array();
if (in_array('a1',$skills)) { $merged = array_merge ($merged, $a1);};
if (in_array('b1',$skills)) { $merged = array_merge ($merged, $b1);};
if (in_array('c1',$skills)) { $merged = array_merge ($merged, $c1);}
else { }
-
Ich würde dir gerne einen eleganten Weg aufzeigen. Doch sehe ich in deinem Beispiel nicht, wie das Endresultat aussehen soll.
Ebenfalls sehe ich nicht, was bei deiner Lösung eigentlich die Arrays $skilsl und $a1 bis $c1 sind. Passt irgendwie absolut nicht mit deinem ersten Beitrag zusammen.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
mir wäre es natürlich lieber wenn ich auf part //zusammenführen verzichten könntePHP-Code:
if(!isset($_POST['wahl'])){ exit('Bitte eine auswahl Vornehmen'); };
//vordefinierte werte
$vorname = 'testvn';
$name = 'testname';
$plz = 'testplz';
$ort = 'testort';
$str = 'teststraße';
$test = 'test';
//welche auswahl was beinhaltet
$a1 = array( $vorname, $name );
$b1 = array( $vorname, $name, $plz, $ort, $str );
$c1 = array( $vorname, $name, $test );
//zusammenführen
$merged = array();
if (in_array('a1',$wahl)) { $merged = array_merge ($merged, $a1);};
if (in_array('b1',$wahl)) { $merged = array_merge ($merged, $b1);};
if (in_array('c1',$wahl)) { $merged = array_merge ($merged, $c1);}
else { }
//doppelte werte löschen
$short = array_unique ( $merged );
//zum schluss werden mit einer foreach schleife die values untereinander ausgegeben
weil ich immer sobald ich z.b. noch d1 und e1 etc. hinzufüge (was vorkommen wird)
im code immer ein neues if erstellen muss.
lg
/e: obwohl das auch nicht unbedingt ein beinbruch sein wird aber umso mehr dynamik umso besser
Geändert von seomaniac (19.01.12 um 16:59 Uhr)
-
Also
$wahl ist ein Array. Der beinhaltet eine Mehrfachselektion 'a1' bis 'c1'. Anhand von dem zeigst du die Arrays zusammen und reduzierst sie auf die grösste eindeutige Menge.
Hier mal meine generische Lösung. Ich setze die Werte wie auch die Pattern in Arrays. Damit lässt sich einfacher arbeiten.
Ausgabe:PHP-Code://Testdaten
$wahl = array('a1', 'c1');
//vordefinierte werte
$values = array(
'vorname' => 'testvn',
'name' => 'testname',
'plz' => 'testplz',
'ort' => 'testort',
'str' => 'teststraße',
'test' => 'test');
//welche Auswahl was beinhaltet
$patterns['a1'] = array( 'vorname', 'name' );
$patterns['b1'] = array( 'vorname', 'name', 'plz', 'ort', 'str' );
$patterns['c1'] = array( 'vorname', 'name', 'test' );
//Ab hier müssen auch bei mehr möglichen Werten oder Pattern nix mehr geändert werden.
//Bei jedem Pattern as den Werten Schlüssel machen. Aus dem Index wird ein Wert.
//Der kann uns aber egal sein. Er wird eh nicht gebraucht
//Resultat: $patterns['a1'] = array( 'vorname' => 0, 'name' => 1 )
$patterns = array_map('array_flip', $patterns);
//die Patterns gemäss $wahl auswählen
$selectedPatterns = array_intersect_key($patterns, array_flip($wahl));
//Die Patterns zu einer eindeutigen Auswahl zusammenziehen
//Alle PAtterns dem array_merge übergeben. Die Schlüssel bleiben dabei eindeutig
$selection = call_user_func_array('array_merge', $selectedPatterns);
//und die Werte zuweisen. Es werden alle Werte des ersten Arrays übernommen, welche
//übereinstimmende Schlüssel mit dem zweiten Array haben.
$result = array_intersect_key($values, $selection);
var_dump($result);
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
// Ausgabe für a1 & c1 array(3) { ["vorname"]=> string(6) "testvn" ["name"]=> string(8) "testname" ["test"]=> string(4) "test" } //Ausgabe für b1 & c1 array(6) { ["vorname"]=> string(6) "testvn" ["name"]=> string(8) "testname" ["plz"]=> string(7) "testplz" ["ort"]=> string(7) "testort" ["str"]=> string(10) "teststraße" ["test"]=> string(4) "test" }---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Oha, sehr ausführlich, dank Dir!
Ich teste es mal und schau mir die php maual an was die Befehle bewirken, bin ja fast noch blutiger Anfänger und da sind mir wiederrum einige neu
ich geb dann natürlich Antwort.
Hätte aber direkt noch eine Frage:
wie Verhält es sich wenn z.b. im $wahl array
ein anderer Wert auftaucht oder er nicht gesetzt ist durch z.b. Manipulation der Übergabe?
lg s/m.
-
Das müsste in dieser Zeile sein
Das Besipiel aus der PHP-DokuPHP-Code://die Patterns gemäss $wahl auswählen
$selectedPatterns = array_intersect_key($patterns, array_flip($wahl));
Wie du siehst, hats auch da in $array2 (in unserem Fall $wahl) Einträge die im ersten Array nict vorhanden sind (Schlüssel gelb und türkis). Sie werden also im ersten Array nicht ausgewählt.PHP-Code:$array1 = array('blau' => 1, 'rot' => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'blau' => 6, 'gelb' => 7, 'türkis' => 8);
var_dump(array_intersect_key($array1, $array2));
/**
result :
array(2) {
["blau"]=>
int(1)
["grün"]=>
int(3)
})
*/
Ergo werden so automatisch alle ungültigen Übergaben ausgefiltert.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
array_merge Problem
Von Hallasas im Forum PHPAntworten: 14Letzter Beitrag: 03.08.07, 17:41 -
PHP5 und array_merge
Von xtratz im Forum PHPAntworten: 6Letzter Beitrag: 18.04.06, 14:52 -
Problem: Flash MX (7.1) exportiert meine Fla nicht mehr - dringendes Problem
Von Lukasz im Forum Flash PlattformAntworten: 4Letzter Beitrag: 22.03.06, 20:50 -
SELECT-Abfrage ueber 2 Tabellen - array_merge
Von funkyvino im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 08.02.05, 16:29 -
Problem mit PopUp (Ja ich weiss Suche benutzten, hab ein ganz anderes Problem)
Von killkrog im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 13.06.02, 12:29





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren