通过表单值发送更改数组中的值

时间:2014-10-10 15:25:36

标签: php foreach flat-file

我有2个阵列 第一个数组具有文本中简单DB的表名 第二个数组具有每个表的值。

当我启动表单时,字段值从表单发送并具有表数组的相等值,从表单中获取值。

剧本:

  <?php        
    if($_POST[send]=="ok") {
        /// The structure it´s that and fixed , in the array_1 and 2 /// 


$tables="name,phone,alias"; 
       $values="Jhon,55543232,johny25";

       /// Explode values in each case ///
       $exp_tables=explode(",",$tables); 
       $exp_values=explode(",",$values);
       /// Array for get values for each field /// 
       $i=0;
       foreach($exp_tables as $exp_table) { ${$exp_table}[]="".$exp_values[$i].""; $i++; }
         /// Bucle for get the result if vars send by form equal to the other vars and change by new value send form the form ///
          foreach($exp_tables as $table) {
             foreach($_POST as $key=>$value) {   
                  if($table=="".$key."") 
                    { 
                      print "".$_POST[$table]."";        
                    } 
                  else { print "".${$table}{0}."";}

                }
             }
         }
     ?>

html表格

<form action="" method="post">
<input type="text" name="name" value="" />
<input type="submit" name="submit2" value"send" />
<input type="hidden" name="send" value="ok" />
</form>

在表格中我在第一个字段和数组表中有“name”,我有一个字段也称为name。

当我发送表格时,我必须得到这个:

Jhon(change value by the value from the form),55543232,johny25

问题是它重复所有时间值而没有得到结果。

我的问题是:如何解决这个问题,以便将我从表单发送的值放入其中,并在其他值与数组表中的名称相同时更改,但不能很好地工作。

1 个答案:

答案 0 :(得分:0)

首先,您的变量$tables$values不是数组而是字符串。

数组看起来像

array(value, value, value)

array( key=> value, key=> value, key value)

在您的情况下,您可以使用

$tables=array('name','phone','alias'); 
$values=array('Jhon','55543232','johny25');
   //or, to make even simpler
$values=array('name'=>'Jhon','phone'=>'55543232','alias'=>'johny25');

然后,如果您只想输出名称并检查名称是否与数组中的名称不同,您只需执行以下操作:

if($_POST['name']==$values['name']){
     print "".$_POST['name']."";        
     } 
 else{
     print "".$values['name']."";
     }