Создание переменных в цикле foreach

#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} = решило мою проблему.