#php
Вопрос:
Я хочу создать имя переменной в цикле foreach. У вас есть предложения для меня?
$_POST [«количество»] содержит 10 строк. Поэтому я хочу определить 10 переменных для этих 10 строк. Я пробовал что-то подобное:
foreach($_POST['quantity'] as $i => $item)
{
$a[$i] = $_POST['quantity'][$i];
}
Но я получаю ошибку PHP, когда пытаюсь это сделать.
Я просто хочу автоматически создать переменные $a1, $a2, $a3, $a4, $a5, $a6, $a7, $a8, $a9 и $a10. Кто-нибудь знает, как я могу это исправить?
Комментарии:
1.
${'a' . $i} =
но переменные переменные считаются плохой практикой. Просто используйте реальный массив.2. Похоже, это не работает. Когда я пытаюсь повторить $a1, я не вижу никакого результата
3. Могу я спросить, почему вы хотите создать 10 переменных вместо использования массива? Ваш пример должен на самом деле делать это до тех пор, пока
$_POST['quantity']
это массив. Какую ошибку вы получаете? Кстати, если это индексированный массив с 10 элементами, то$i
он будет начинаться0
и заканчиваться9
, а не1
10
. Вы также можете заменить$_POST['quantity'][$i]
на просто$item
. Вы проверили, что$_POST['quantity']
на самом деле содержит то, что вы ожидаете?4. Вы правы, он начинается с 0 вместо 1. Но это не имеет значения, когда я пытаюсь повторить $a1 или $a0, он все еще пуст. количество содержит то, что я ожидаю. Код также работает, когда я вручную создаю переменные=
$a1 = $_POST['quantity'][$i];
но${'a' . $i} =
или$a[$i] =
показывает пустые5. Когда я пытаюсь повторить $a1, я не вижу никакого результата Знаете ли вы разницу между $a1 и $a[1] ?
Ответ №1:
Шианай7 был прав. Использование ${'a' . $i} =
решило мою проблему.