2012-03-01 2 views
0

У меня есть этот код:Php принимать значения с массивами

Hola в ToDos, Тенго Эсте Código у меня нет está 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 } ?> 

Проблема у меня есть подмигнули при генерации каждого поля, в значении для каждого поля не работает значение = «» для добавления значения, только эту проблему

Thank's для всех коллабораций, с уважением

+1

Вопрос не ясно, что цель добавления известных значений измерения в к '$ campos' массив? почему бы не использовать его напрямую? – Ashraf

ответ

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 [ título] имена TextField {звуки тусклый}

лучше бы

<?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 } ?> 

он установит поле п Эймс, как ключи массива, т.е. «Сети» и «título»

надеюсь, что это помогает ваш случай

Смежные вопросы