2012-04-12 9 views
3

Ich habe ein Array, das ich umbenennen möchte, so dass die Werte abhängig von der Nummer der For-Schleife gespeichert werden. Ich habe so etwas versucht, aber es gibt mir einen Fehler.Ändern einer PHP-Variablenname durchgängig für Schleife

for ($i =0;$i<4;$i++){ 

$array.$i = array(); 

push stuff into array; 




} 

Also bei der nächsten Iteration heißt das Array Array1, dann Array2 und so weiter. Was ist der beste Weg, dies zu tun?

+0

Um es klar, Sie sagen, dass Sie vier verschiedene Arrays erstellen möchten, mit Namen von $ array1 bis $ array4? – octern

+3

Verwenden Sie ein mehrdimensionales Array. $ array [$ i] ... –

+0

korrekt. Ich habe verschiedene Ligen mit verschiedenen Mannschaften. Ich möchte also für jedes Team jeder Liga ein Array erstellen, wenn das Sinn macht. – user541597

Antwort

3

buchstäblich Um Ihre Frage zu beantworten:

$arrayName = 'array' . $i; 
$$arrayName = array(); 
$$arrayName[] = ... 

Was Sie wirklich wollen, ist ein mehrdimensionales Array aber:

$array[$i] = array(); 
$array[$i][] = ...; 
+0

Spot auf guten Sir –

0

Sie möchten variable variables verwenden, wobei das doppelte Dollarzeichen angibt, dass der Name der Variablen aus einer Variablen stammt.

$varname = "array"; 
for ($i =0;$i<4;$i++){ 
    $newvarname = $varname . $i 
    $$newvarname = new array() 
    push stuff into array; 
} 

würde ich, dass in diesen Fällen hinzuzufügen, eine einfachere Lösung oft eine Anordnung zu verwenden, in der die Variablennamen gewünschten Indizes sind. Anstatt also $array1 schaffen, $array2 und so weiter, dann würden Sie haben:

$arrays = array (
    'array1' => array(stuff), 
    'array2' => array(stuff), 
    'array3' => array(stuff), 
    'array4' => array(stuff) 
} 

Wenigstens finde ich es einfacher, um zu verfolgen.

0

Sie sollten das Array mit der $$ Notation verweisen können, für Variablenvariablen (siehe: http://www.php.net/manual/en/language.variables.variable.php). so etwas wie dieses

So sollte (ungetestet) arbeiten:

for ($i =0;$i<4;$i++){ 

    $thisArrayName = 'array'.$i; 
    $$thisArrayName = array(); 

    push stuff into array; 

} 
0

Sie Array von Array benötigen

for ($i =0;$i<4;$i++){ 

    $array[$i] = array(); 

    push stuff into array; 
} 
Verwandte Themen