У меня есть следующий ассоциативный массив, хранящийся в php-файле, также содержащий оператор подключения к базе данных.
$fields = array(
"A" => "A",
"B" => "B",
"C" => "C",
...
);
Вот я называю это
include('dbconnection.php');
Что я намеревался из этого кода является то, что $ поле значения в пределах $ _POST [$ поле] будут переданы к значениям, хранящимся в $ fields.
if (isset($_POST['submit'])){
//iterating through fields array
foreach($fields as $column => $field){
//cleaning and storing user input in fields array
$field = mysqli_real_escape_string($cxn , htmlspecialchars($_POST[$field]));
}
Эти новые $ полей значения массива затем будут переданы к $ emptyArray, где элементы массива, содержащего 0, NULL, FALSE, или «» значения будут отфильтрованы.
$emptyArray = array();
$emptyArray = array_merge ($emptyArray, array_values($fields));
$emptyArray = array_filter($emptyArray);
Наконец, после проверки, есть ли какие-либо элементы, хранящиеся в $ emptyArray, сообщение об ошибке будет выдано, наряду с вызовом для запуска функции renderform.
if (empty($emptyArray)){
$error = 'You have reached this message because you did not specify a field to update';
renderForm($id, $fields, $error);
}
}
функция renderform содержит аргумент $ полей, первый массив в этой цепочке, поэтому я решил использовать $ emptyArray вместо $ полей для того, чтобы сохранить свою структуру.
Однако, если я бегу print_r из $ полей и $ emptyArray непосредственно перед renderform, я получаю массивы идентичных ключей и значений, хранящихся в $ полях до их манипуляции
Массив ([A] => A [B] => B [C] => C [...] => ...)
Могу ли я использовать $ _POST [$ field] так, чтобы Я намерен ing ($ field значения в пределах $ _POST [$ field] переносится на значения, хранящиеся в пределах $ fields)? Если да, то это хорошая практика?
Спасибо за чтение, Я рад ответить на любые вопросы.
не могли бы вы просто использовать [ 'array_map()'] (http://php.net/manual/en/function.array-map .php) –