2013-05-27 66 views
0

對不起,如果這已被問到,但它很難搜索它...我試圖googlin這個主題沒有成功。加入字符串和變量以獲得PHP中的另一個變量

我想這樣做是:

$layoutColor = 2; 
$colors1 = array ("F57171", "FACCCC"); 
$colors2 = array ("FF9900", "FFC66F"); 

$chosenTheme = "colors".$layoutColor; 
echo $chosenTheme [0]; 

我想加入這個詞「顏色」的$ layoutColor變量,以獲得變量$ colors2。

我該怎麼做?

謝謝。

+0

您想將字符串視爲另一個變量的名稱嗎? – user4035

+0

我想加入他們兩個,以獲得另一個變量......我曾經在ActionScript中一直這樣做,但我不知道如何在PHP中編寫它。 我將有很多$顏色數組,如$ color35,$ color36 ... 我不能只改變變量$ layoutColor中的數字,並且由此,變量$ chosenTheme將自動等於我想要的顏色。 – DanielFox

+1

它被稱爲變量變量,你可以**不**要去那裏。他們導致完全不可維護的代碼。改爲使用多維數組:'$ colors [1] [1] - > FACCCC' –

回答

4

你最好的只是所有的選擇組合成一個單一的多維數組逼近這一點:

$layoutColor = 2; 
$colors = array(); 
$colors[1] = array ("F57171", "FACCCC"); 
$colors[2] = array ("FF9900", "FFC66F"); 

$chosenTheme = $colors[$layoutColor]; 
echo $chosenTheme [0]; 
+0

我沒有想過這個,這似乎是確實做到這一點的最好方法。好多了。 謝謝。 – DanielFox

1

我認爲你可以簡化這個使用多維數組:

$colors = array(
    array ("F57171", "FACCCC"), 
    array ("FF9900", "FFC66F") 
); 

所以...

echo $colors[0]; 

或者你可以用戶變量變量:

$chosenTheme = ${"colors".$layoutColor}; 
1

你可以試試這個

$layoutColor = 2; 
$$colors2 = "colors".$layoutColor; 

所以你會得到$colors2變量

print_r($colors2); // Array ([0] => FF9900 [1] => FFC66F) 

注意雙$,將在變量保持變量名。

1

嘗試:

$layoutColor = 2; 

$string = "color"; 

echo $$string.$layoutColor; 
2

試試這個:

<?php 
$layoutColor = 2; 
$colors1 = array ("F57171", "FACCCC"); 
$colors2 = array ("FF9900", "FFC66F"); 

$chosenTheme = "colors".$layoutColor; 
echo ${$chosenTheme}[0]; 

打印:

FF9900

+0

雖然我堅持認爲多維數組是最好的方法,但這個答案是對這個問題的更直接的回答。 +1 –

+0

同意。這工作完美,但多維陣列似乎是我的更好的選擇。我只是沒有想過...謝謝! – DanielFox

0

您需要使用動態變量 $$chosenTheme = "colors".$layoutColor;

然後使用這個變量 $chosenTheme

0

這可能不是一個回答你的問題訪問陣列,但是根據您的具體情況下,嘗試這樣的事情:

$layoutColor = 2; 
$colors = array (
       Array("F57171", "FACCCC"), 
       Array ("FF9900", "FFC66F") 
      ); 

echo $colors[$layoutColor][0]; 

一多維數組更容易閱讀

相關問題