2014-10-19 191 views
0

在這個例子中是兩個數組,但實際上可能是其他數量的數組(我不知道我可能有多少個數組)。Php如何在變量名中包含另一個變量

$some_name = array ("Volvo_0",220,180,); 
$array_name_for_variable[]='some_name';//here i create another array latter to loop through 

$another_name = array ("Volvo_1",221,181,); 
$array_name_for_variable[]='another_name'; 

在這個例子中,我只是想print_r我可能擁有的數組。所以我通過$array_name_for_variable循環。像

foreach($array_name_for_variable as $i_array_name_for_variable => $val_array_name_for_variable) { 

試圖打印特定的陣列(如print_r($some_name)),使用該

echo '<pre>', print_r($['val_array_name_for_variable'], true), '</pre> $val_array_name_for_variable __<br/>'; 

但看到錯誤Parse error: syntax error, unexpected '[', expecting T_VARIABLE or '$'

} 

print_r($['val_array_name_for_variable'])是錯誤的。試過這print_r($[$val_array_name_for_variable]);。也有錯誤。

任何想法需要改變。

爲什麼這一切,我需要......

我有12列,但我不知道是哪12會在一個特定的頁面中使用。

因此頁面加載時,12個數組中的一些被定義(使用)。

我可能會寫如array_1存在,然後長的HTML代碼使用array_1中的變量。

然後,如果array_2存在並且不爲空,那麼使用array_2中的變量重複相同的html代碼。

但不是複製粘貼(重複)的HTML代碼,我決定循環通過打開的頁面中存在的數組和長的HTML代碼只寫一次。

+0

你不能使用$ ['xxx']這是因爲你需要一個變量的名字,這意味着你可以擁有$ var ['xxx']而不僅僅是$ ['xxx'],因爲PHP不知道你試圖用$ var ['xxx']訪問哪個數組,它會知道你需要數組$ var中的鍵xxx的值。 – 2014-10-19 16:49:03

+1

它很難理解你想要做什麼 – Dwza 2014-10-19 16:51:24

+0

結果是'some_name','$ val_array_name_for_variable __','another_name'和'$ val_array_name_for_variable __'? – Tim 2014-10-19 16:56:38

回答

1

你可以解決這個問題:

$some_name = array ("Volvo_0",220,180,); 
$array_name_for_variable[]=$some_name; 

$another_name = array ("Volvo_1",221,181,); 
$array_name_for_variable[]=$another_name; 

然後遍歷它:

foreach($array_name_for_variable as $i_array_name_for_variable => $val_array_name_for_variable) { 
echo '<pre>', print_r($val_array_name_for_variable, true), '</pre><br/>'; 
} 

這將打印所有$ array_name_for_variable中的元素。

評論是否需要對輸出進行任何更改。

說明:代碼實際上在做什麼是遍歷數組$ array_name_for_variable的所有元素。它爲它中的每個元素創建一個key =>值。第一次迭代的值($ val_array_name_for_variable)爲:$ some_name。鍵($ i_array_name_for_variable) - 數組中的元素位置,因此在第一次迭代中它將是0(因爲它總是從0開始)。

如果你不需要,你可以做這樣的元素位置:

foreach($array_name_for_variable as $val_array_name_for_variable) { 
echo '<pre>', print_r($val_array_name_for_variable, true), '</pre><br/>'; 
} 

這將產生完全相同的輸出上面的代碼片段相同。

爲了向數組添加元素,您必須傳遞一個變量,並且只傳遞一個字符串。

編輯:基於新添加的信息 的代碼應該是:

foreach($array_name_for_variable as $i_array_name_for_variable => $val_array_name_for_variable) { 
if (array_key_exists($i_array_name_for_variable, $val_array_name_for_variable)) { 
echo '<pre>', print_r($val_array_name_for_variable, true), '</pre><br/>'; 
} else { 
//Code if the array does not exist. 
} 
} 

參考文獻:

1

您可能需要做這樣的事情

$some_name = array ("Volvo_0",220,180,); 
$array_name_for_variable['some_name']= $some_name ; 

$another_name = array ("Volvo_1",221,181,); 
$array_name_for_variable['another_name']= $another_name ; 


foreach($array_name_for_variable as $i_array_name_for_variable => $val_array_name_for_variable) { 

    print_r($val_array_name_for_variable);//prints the array 
    print_r($i_array_name_for_variable);// print the keys ex :- some_name 
}