Изменить значения в массиве по значениям формы

У меня есть 2 массива.
Первый массив содержит имена таблиц для простой БД в тексте.
Второй массив имеет значения каждой таблицы.

Когда я запускаю мою форму, значение поля send from form и имеет равное значение массива таблиц, берут значение send из формы.

Сценарий :

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

В форме у меня есть «имя» в первом поле, а в таблицах массивов у меня есть одно поле, также называемое именем.

Когда я отправляю форму, я должен получить это:

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

Проблема в том, что все значения времени повторяются, и результат не получается.

Мой вопрос: как я могу это исправить, чтобы поместить значения, отправленные из формы, и изменить их, если другие значения имеют то же имя, что и в таблицах массивов, но ни одно из них не работает очень хорошо.

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']."";
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]