Я хочу знать правильный синтаксис объявления нескольких переменных в php с небольшими изменениями, как указано ниже

$str='abcde';//for sub-question numbers
for ($i=1; $i <=10 ; $i++) {//i loop is for question numbers 1 to 10
for ($j=0; $j<5 ; $j++) {//j loop is for sub-questions from a to e
$q{$i}{$str[$j]}=$_POST['q{$i}{$str[j]}'];//not sure about this part
}
}

Здесь основная идея состоит в том, чтобы создать 50 переменных от q1a, q1b, … до q10d, q10e.

-1

Решение

Я не на 100% понимаю, какими будут значения этих переменных, но вот как создать массив с именами этих переменных.

$questions = array(1,2,3,4,5,6,7,8,9,10); //questions
$subQuestions = array('a','b','c','d','e');  //sub-question

$allQuestions = array();
foreach($questions as $question) {//loop the questions
foreach($subQuestions as $subQ) {//loop the sub questions
// I'm not clear what you're trying to do here -> $q{$i}{$str[$j]}=$_POST['q{$i}{$str[j]}'];//not sure about this part
$allQuestions["q" . $question . $subQ] = "I'm an empty value right now"; //what value goes here?
}
}
var_dump($allQuestions);
1

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

Вы можете сделать что-то вроде этого

$values = array("q1a", "q1b", "q1c", "q1d", "q1e", "q2a", "q2b", "q2c", "q2d", "q2e");
for($i=;$i<$sizeof($values);$i++)
{
$values[$i] = $_POST['q{$i}{$str[j]}'];
}
0

Если все ваши POST-переменные, которые вы хотите получить, начинаются с q затем просто отфильтруйте их array_filter ().

Тогда вы можете использовать экстракт (), но вы должны просто использовать массив.

<?php
$_POST = [
'q1' => 'baz',
'foo' => 'bar',
];

$q = array_filter($_POST, function($k) {
return substr($k, 0, 1) === 'q';
}, ARRAY_FILTER_USE_KEY);

extract($q);

// filtered array
print_r($q);

// extract'ed
echo $q1;

Результат:

Array
(
[q1] => baz
)
baz

https://3v4l.org/rvMR6

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector