Sortieren eines Arrays mit einer Variable
Richy
- php
0 ChrisB
Ich habe eine php Funktion um mehrere Wörter zu sortieren diese funktioniert aber nicht wenn ich eine Variable die in einer Schleife mehrere Werte hintereinander zugewiesen bekommt einbaue. Wenn ich aber die Werte selber in diese Funktion reintippe funktioniert sie.
Ich habe euch den Code mit Beschreibung dazugeschickt. Vielleicht wisst ihr ja woran das liegen könnte
//Bei jedem Durchlauf der Schleife wird durch die Funktion die Variable //$theme neu bestimmt
while ($id < 6)
function()
{
//Volgendes erfolgt nur beim ersten Durchlauf der Schleife
//damit dann keine doppelten Einträge entstehen
if ($variable == '')
{
$variable = $theme;
}
//Ab dann hat $variable einen Wert also wird dieser gesetzt
//und der Wert $theme hinzugefügt
//wobei sie durch ", " getrennt werden müssen damit das am
//Schluss ungefähr
//so aussieht: eins", "zwei", "drei", "vier
else
{
if ($id < '6')
{
$variable = $variable.'", "'.$theme;
}
}
$id++;
}
//Das ganze passiert 5 Mal, danach wird $variable2 der Wert
//"$variable" zugeordnet
//damit am Anfang und am Ende von $variable jeweils ein " ist
//da ich das zur Trennung der Wörter im Array brauche.
//Eigentlich nicht notwendig aber um sicher zugehen
//dass er das auch erst macht wenn er mit der Schleife fertig ist
if ($id == '6')
{
$variable2 = '"'.$variable.'"';
//Das Echo dient zur Kontrolle ob die Ausgabe von $variable2
//auch wirklich so ist: "eins", "zwei", "drei", "vier" und das ist
//sie auch
echo $variable2;
//Hier entstehen dann die Probleme:
$fruits = array($variable2);
sort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[" . $key . "] = " . $val . "\n";
}
}
//Wenn die erste Zeile so aussieht:
$fruits = array("eins", "zwei", "drei", "vier");
//Dann funktionierts. Wenn sie aber so aussieht:
$fruits = array($variable2)
//dann sortiert er die Einträge nicht sondern schreibt statt:
Fruits[0] = drei
Fruits[1] = eins
Fruits[2] = vier
Fruits[3] = zwei
//volgendes hin:
Fruits[0] = "eins", "zwei", "drei", "vier"
Woran könnte das liegen?
Gibt es eine bessere Möglichkeit einer Variable einen Wert hinzuzufügen ohne dass der alte verloren geht?
Also dass dann $variable = $alterwert, $neuerwert ist?
Danke
Mit freundlichen Grüßen Richy
Hi,
Ich habe eine php Funktion um mehrere Wörter zu sortieren diese funktioniert aber nicht wenn ich eine Variable die in einer Schleife mehrere Werte hintereinander zugewiesen bekommt einbaue.
Weil dann der Inhalt gar nicht das ist, was du erwartest.
//Das Echo dient zur Kontrolle ob die Ausgabe von $variable2
//auch wirklich so ist: "eins", "zwei", "drei", "vier" und das ist
//sie auch
echo $variable2;//Hier entstehen dann die Probleme:
$fruits = array($variable2);
Hättest du an dieser Stelle mal eine Kontrollausgabe gemacht - dann hättest du auch gesehen, welchen Blödsinn du hier fabrizierst.
Du hast ein Array mit nur *einem* Element erzeugt - und dessen Inhalt lautet '"eins", "zwei", "drei", "vier"'.
sort($fruits);
*Ein* Element kannst du so lange sortieren, wie du willst ...
//Wenn die erste Zeile so aussieht:
$fruits = array("eins", "zwei", "drei", "vier");
//Dann funktionierts.
Das ist ja auch ein "vernünftiges" Array.
Wenn sie aber so aussieht:
$fruits = array($variable2)
//dann sortiert er die Einträge nicht sondern schreibt statt:
Fruits[0] = drei
Fruits[1] = eins
Fruits[2] = vier
Fruits[3] = zwei
//volgendes hin:
Fruits[0] = "eins", "zwei", "drei", "vier"
[/code]
Woran könnte das liegen?
Daran, dass du genau das in das "Array" hineingeschrieben hast.
Gibt es eine bessere Möglichkeit einer Variable einen Wert hinzuzufügen ohne dass der alte verloren geht?
Ja, Arrays benutzen - aber *richtig*.
Wenn du nicht weisst, wie - dann informiere dich im Manual, wie man mit Arrays umgeht.
Also dass dann $variable = $alterwert, $neuerwert ist?
Nein, so nicht - auch das hat mit einem Array noch wenig zu tun.
MfG ChrisB