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

$itempuname0 = $_POST['itempuname0'];
$itempuname1 = $_POST['itempuname1'];
$itempuname2 = $_POST['itempuname2'];
$itempuname3 = $_POST['itempuname3'];
$itempuemail0 = $_POST['itempuemail0'];
$itempuemail1 = $_POST['itempuemail1'];
$itempuemail2 = $_POST['itempuemail2'];
$itempuemail3 = $_POST['itempuemail3'];

Далее в сценарии я извлекаю информацию из сеанса. Каждый элемент в сеансе перечисляет в том же порядке, в котором передаются эти переменные.

if(isset($_SESSION["products"])) {
    $total = 0;
    $cart_items = 0;

    sort($_SESSION["products"]);
    foreach ($_SESSION["products"] as $cartitem) {
        $showid = $cartitem["code"];
        $name = $cartitem['name'];
        $original = $cartitem['original'];
        $price = $cartitem['price'];
        $quantity = $cartitem["qty"];
    }
}

Как мне сделать так, чтобы я мог определять $ itempuname и $ itempuemail без чисел в этой функции foreach? Спасибо!

0
Aerdan 19 Мар 2014 в 11:04
1
sort($_SESSION["products"]); кажется лишним; вам нужно сделать это только при обновлении массива.
 – 
Ja͢ck
19 Мар 2014 в 11:08
Что вы подразумеваете под «определением без цифр»? Их четыре, так что не важно использовать правильный?
 – 
Ja͢ck
19 Мар 2014 в 11:10
1
Как связаны переменные сверху и переменная сеанса?
 – 
benomatis
19 Мар 2014 в 11:10
Джек: Да, я действительно хочу использовать правильный, поэтому при первом цикле он использует 0, затем 1 и т. Д. Я просто хочу, чтобы переменная определялась таким образом при вставке данных. Последовательность чисел и место их появления в foreach () будут коррелированы.
 – 
Aerdan
19 Мар 2014 в 11:15
Почему бы не использовать массив ?!
 – 
deceze
19 Мар 2014 в 11:19

1 ответ

Лучший ответ

Аредан, я не уверен, что понимаю твой вопрос. Я предполагаю, что вы хотите назначить переменные post в цикле на основе чисел в переменной. Вы можете использовать ' переменные переменных 'PHP. Проверьте код ниже,

for($i=0;$i<4;$i++){
    $namevar   = 'itempuname'.$i;
    $emailvar  = 'itempuemail'.$i;
    $$namevar  = $_POST[$namevar];
    $$emailvar = $_POST[$emailvar];
}
1
Lepanto 19 Мар 2014 в 11:38