2012-03-01 57 views
0

我有這樣的代碼:腓採取值與數組

HOLA一個待辦事項,TENGO埃斯特códigoY沒有我ESTA funcionando:

<?php 
$adm['web'] = "www.tuweb.com"; 
$adm['titulo'] = "Mi título web"; 
$campos = array('adm[web]','adm[titulo]'); 
for ($i=0; $i<count($campos); $i++) { 
?> 
    /* add values in each field in the value="" */ 
    <input type="text" name="<?php echo $campos[$i]; ?>" value="<?php echo ${$campos[$i]}; >"/> 
<?php } ?> 

我有it's當產生每個字段中的問題,在每個字段中沒有工作價值=「」用於添加值,只有這個問題

Thank's所有合作的價值,視

+1

問題不明確,什麼加入已知的尺寸值到'$ campos'陣的目的是什麼?爲什麼不直接使用它? – Ashraf 2012-03-01 04:47:50

回答

0

雖然髒,但你可以這樣做:

 

echo eval('return $'. $campos[$i] . ';'); 
 

因此,這將是:

 

<input type="text" name="<?php echo $campos[$i]; ?>" value="<?php echo eval('return $'. $campos[$i] . ';');?>" /> 
 
2

${$campos[$i]}評估爲${adm[web]}。您沒有名爲「adm[web]」的變量。您有一個名爲「adm」的變量,其中有一個名爲「web」的鍵。變量插值不能解決這個問題。

解決方法是使用$campos = array($adm['web'], $adm['titulo'])而不是您正在嘗試的複雜解決方法。

0
<?php 
    echo eval('return $'.preg_replace('~(?<=\[)(.*?)(?=\])~',"'$1'",$campos[$i]).';') 
?> 
1

只有當你的名字文本字段作爲數組變量名,並將其值是值那麼這可能是你想要什麼

<?php 
$adm['web'] = "www.tuweb.com"; 
$adm['titulo'] = "Mi título web"; 
$campos = array('adm[web]'=>$adm['web'], 'adm[titulo]'=>$adm['titulo']); 
foreach($campos as $key=>$value){ 
?> 
    <input type="text" name="<?php echo $key; ?>" value="<?php echo $value; ?>" /> 
<?php } ?> 

這將設置ADM [網絡]和ADM [ TITULO]文本字段名稱{聽起來可疑}

更好的辦法是

<?php 
$adm['web'] = "www.tuweb.com"; 
$adm['titulo'] = "Mi título web"; 
$campos = $adm; 
foreach($campos as $key=>$value){ 
?> 
    <input type="text" name="<?php echo $key; ?>" value="<?php echo $value; ?>" /> 
<?php } ?> 

它將設置場n埃姆斯作爲數組鍵即「網絡」和「TITULO」

希望這可以幫助你的情況