2016-11-14 3 views
0

Если у меня есть этот массив $ _POST:

session[1][0]=50& 
session[1][1]=60& 
session[2][0]=70& 
session[3][0]=80 

Как я могу использовать для цикла, чтобы получить значение сессии и пункта? Я думал, что это сработает, но это не так.

foreach ($_POST['session'] as $i => $value) { 
    $session = $session[$i]; 
    $item = $value; 

    $query->bindValue(':session', $session, PDO::PARAM_INT); 
    $query->bindValue(':item', $value, PDO::PARAM_INT); 
    $query->execute(); 

} 

Чтобы первая итерация цикла создавала $ session = 1 и $ item = 50?

+0

вы используете Ajax? –

+0

yes using ajax to reoder list items – user1392897

ответ

1

От вашего кода $_POST['session'][$i] и $value будет то же самое, что содержит array(0 => 50, 1 => 60) для первой итерации.

В первой итерации $session еще не определен, поэтому вы не можете получить доступ к $session[$i].

Чтобы получить то, что вы хотите достичь:

foreach ($_POST['session'] as $i => $value) { 
    $session = $i; //1 
    $item = $value[0]; //50, and $value[1] is 60 
} 

Чтобы понять больше о том, что содержимое переменной, вы можете распечатать его содержимое с помощью print_r($value), например, так что вы будете знать, что его содержание и структура выглядит как.

UPDATE

Для перебора всех значений для каждой сессии:

foreach ($_POST['session'] as $session => $value) { 
    foreach ($value as $item) { 
     //do whatever you want here with the $session and $item 
     //over all the iterations, here we will have: 
     //iteration#1 $session=1, $item=50 
     //iteration#2 $session=1, $item=60 
     //iteration#3 $session=2, $item=70 
     //iteration#4 $session=3, $item=80 
    } 
} 
+0

спасибо, что имеет смысл - но как я могу перебирать массив $ value в цикле, чтобы я мог получить доступ к $ value [1], например, где количество элементов неизвестно? – user1392897

+0

Я обновил свой ответ – elfan

1

Предполагая, что вы хотите вывести все значения в переменной, вы должны использовать вложенный цикл здесь.

foreach ($_POST['session'] as $i => $value) { /* Accessing session[1], session[2] ... */ 
    foreach ($value as $val) { /* session[1][0], session[1][1] ..... */ 
     echo $val; 
    } 
} 

Выход:

50&60&70&80 
+0

спасибо, да, я в конечном итоге хочу использовать значения в запросе - я обновил вопрос, чтобы показать это – user1392897

Смежные вопросы