2014-09-30 58 views
1

我正在編寫一些代碼來自動創建字段,這將爲我節省時間。我的代碼大部分工作正常,但是我遇到了一個代碼錯誤,這阻止了我實現最終目標。使用帶有while循環的字符串的數組

的代碼如下:

while ($i <= $numFields) { 

    $type    = "\$field{$i}_Data['type']"; 
    $name    = "\$field{$i}_Data['name']"; 
    $placeholder  = "\$field{$i}_Data['placeholder']"; 
    $value    = "\$field{$i}_Data['value']"; 

    echo '<input type="'.$type.'" name="'.$name.'" placeholder="'.$placeholder.'" value="'.$value.'">'; 

    $i++; 

} 

的$ numFields變量在我的腳本的頂部定義,我已經算出來那是事做,我怎麼設置變量$類型,$ name等

最終的結果是根據腳本頂部的變量設置的屬性創建輸入,我唯一的問題是如上所述的變量的設置。

如果需要任何額外的代碼/信息,請隨時詢問。

謝謝。

注 - 沒有實體PHP錯誤,它僅僅是這樣一個錯誤:

"\$field{$i}_Data['value']"; 
+0

你有N排列名爲'field1_Data'與'type'的變量:你不介意一個額外的變量,這樣可以更加清潔通過保存它像這樣寫的嗎? – 2014-09-30 19:33:27

+0

你的錯誤到底是什麼意思? – 2014-09-30 19:36:15

+0

沒有物理PHP錯誤,它只是創建的所有字段都是文本,並且它們的名稱,值和佔位符都是「$ field_Data [」「]」,並且對每個變量進行了更改。我只是想知道如何使用$ i變量連接數組名稱以允許多個字段進程。 – 2014-09-30 19:38:57

回答

1

有我們可以寫一出幾種方法,但它們是變量擴展的所有擴展和/或可變的變量。

基本上,我們只是需要把變量名字符串,然後使用該字符串作爲變量(就像你目前正與$i做裏面的字符串):

$type = ${"field{$i}_Data"}['type']; 
$name = ${"field{$i}_Data"}['name']; 
// ... 

但是,如果

$data = ${"field{$i}_Data"}; 
$type = $data['type']; 
$name = $data['name']; 
// ... 
+0

現在工作完美!非常感激。 – 2014-09-30 20:09:48