TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/

Как проверить значение переменной, название которой берётся из переменной?

Здравствуйте!
Странная формулировка вопроса, конечно.
Столкнулся с задачей обработать форму через PHP. Форма динамическая. Там может быть и 1 и 10 и 100 полей одновременно. Новые поля помечаются цифрой в названии. Т.е. из формы можно будет получить:
$array[1] = $_POST["input1"]; //Есть текст
$array[2] = $_POST["input2"]; //Есть текст
$array[3] = $_POST["input3"]; //Уже нет текста, поля просто не существует

Нужно посчитать количество "существующих" полей. Как это можно реализовать?
Заранее спасибо.
  • Вопрос задан
  • 138 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега PHP
♬♬
$_POST – это просто ассоциативный массив. Сосчитать все поля, что пришли: $n = count( $_POST);

array_keys() вернёт все ключи массива. Можно их потом сранивать с шаблоном "inputЧИСЛО".

Сосчитать все совпадающие с inputXXX можно и перебрав $_POST в цикле:
$n = 0;
foreach( $_POST as $key) if( substr( $key, 0, 5) === 'input') $n++;
echo "Пришло $n значений.";


Помимо упомянутых в других ответах isset() и empty() наличие переменной в POST'е можно определить через filter_has_var():
if( filter_has_var ( INPUT_POST, 'input999' )) {
  // да, есть такой input999
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
saintbyte
@saintbyte
Django developer
isset еще котируется ?
Ответ написан
Комментировать
@Argumentus
кроме isset, можно еще empty() - сразу проверяет на пустое значение + есть ли переменная.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы