Funktion und Parameter
Otto
- php
Hi Leute,
ich habe ein kleines Problem und zwar übergebe ich einer Funktion drei Parameter, welche den Wert 0 oder 1 haben können.
Jetzt soll aus dem zwei dim. Array der richtige Wert rausgeholt werden.
Die erste dim. des Array ist ja kein Problem aber wie komme ich an die zweite dim. ran wenn ich das über eine For Schleife steuer möchte? Oder geht das nicht so wie ich das vor habe?
function auswertung_radio($var_0,$var_1,$var_2)
{
$satzbau = array();
$satzbau[0][0]="Blumen";
$satzbau[0][1]="keine Blumen";
$satzbau[1][0]="Schwimmen";
$satzbau[1][1]="nicht Schwimmen";
$satzbau[2][0]="Kuchen";
$satzbau[2][1]="kein kuchen";
for($i=0;$i<=2;$i++)
{
$ausgabe_test=$satzbau[$i][$var_$i];
echo $ausgabe_test;
}
}
Vielen Dank für Eure Bemühungen.
MFG
Otto
Hello,
was willst Du denn ausgeben lassen? Das ganze Array?
Dann müsstest Du die Auswertungsreihenfolge festlegen. Willst Du es Zeilenweise oder Spaltenweise auslesen? Wobei man bei den Speicherstrukturen in PHP, die sich Arrays nennen, nicht von Spalten und Zeilen reden sollte. Es handelt sich um Baumstrukturen. Genauer: Irgendwo gibt es einen Anfangspunkt un einen Endpunkt einer verketten Liste. Jedes Element dieser Liste kann nun seinerseits genau einen Datenwert und einen Schlüsselwert aufnehmen, oder einen Schlüssel und einen Anfangspunkt für eine neue Kette.
Kannst Du dir das vorstellen?
Solche Strukturen liest man rekursiv aus, wenn man sie garantiert vollständig haben möchte.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi,
ich möchte folgendes erreichen:
wenn $var_0=0 ist dann soll das array feld $satzbau=[0][0] ausgegeben werden und sollte $var_0=1 sein soll das array feld $satzbau=[0][1] ausgegeben werden.
Es kann aber immer nur eines der beiden ausgegeben werden, d.h. am Ende habe ich geanau 50 % des Arrays ausgegeben.
Ich benötige dieses um Automatisch ein Brief aus User Antworten zu generieren.
Die Antworten können mittels von Radio Buttons ausgewählt werden.
Hoffe mein Problem ist jetzt deutlicher geworden.
MFG
Otto
Hello Otto,
Du möchtest also aus einer zweidimensionalen Struktur eine Dimension der Reihe nach automatisch durcharbeiten und aus der zweiten Dimension jeweil einen vorselktierten Wert ausgeben?
Dann schlag ich Dir folgendes vor:
$_data = array();
$_data[0][0] = "erster Begriff";
$_data[0][1] = "keine Ahnung";
$_data[1][0] = "zweiter Begriff";
$_data[1][1] = "bin doch nicht blöd";
$_select = array;
$_select[0] = 1;
$_select[1]= 0
$_select[2]= 1;
function get_str_kombi($_data, $_select)
{
$str = "";
if (!(is_array($_data) and us_array($_select)) return false;
foreach($_data as $key => $val)
{
$str .= $_val[$_select[$key]];
}
return $str;
}
echo get_str_kombi($_data, $_select);
Ist eben nur eine grobe Struktur. man muss naoch mit isset() prüfen, ob der jeweilige Key auch in $ _select drin ist... usw.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hello,
außerdem fällt mir gerade ein, dass es in PHP dafür eine fast fertige Funktion gibt http://de.php.net/manual/de/function.array-map.php
Die kann man aber nicht ganz so leicht verstehen.
Du müsstest sie nur um die Ausgabefunktion (=Callbackfunktion) ergänzen.
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi!
Du brauchst überhaupt kein3 Schleife wenn die Anzahl der Parameter eh bekannt ist:
function auswertung_radio($blumen, $schwimmen, $kuchen) {
$satzbau = array();
$satzbau[0][0]="Blumen";
$satzbau[0][1]="keine Blumen";
$satzbau[1][0]="Schwimmen";
$satzbau[1][1]="nicht Schwimmen";
$satzbau[2][0]="Kuchen";
$satzbau[2][1]="kein kuchen";
echo $satzbau[0][$blumen];
echo $satzbau[1][$schwimmen];
echo $satzbau[2][$kuchen];
}
Grüße
Andreas
Hi,
die Lösung kann so einfach seien, doch sa ich den Wald vor Lauter Bäume nicht.
Ich danke dir, das ist genau das was ich brauch nicht meher und nicht weniger.
MFG
OTTO