Richy: Sortieren eines Arrays mit einer Variable

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

  1. 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

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.