2013-07-19 3 views
0

Я пишу форму со многими вещами внутри, а затем использую foreach для получения информации. До сих пор мой foreach хорошо работает, но если я использую информацию за пределами foreach, я получаю некоторые странные данные.использовать данные за пределами foreach

Вот мой код только с извлечением Еогеаспа и данных:

foreach ($_POST['number3'] as $id1 => $array) { 
     foreach ($array as $id2 => $alpha) { 
       foreach ($alpha as $id3 => $gama) { 
         $_SESSION['number3'][$id1][$id2][$id3] = $gama; 
         echo 'The value of $_SESSION["'.$id1.'"]["'.$id2.'"] ["'.$id3.'"] is '."'".$gama."'".' <br />'; 
        } 
       } 
    } 

    for ($i = 1; $i <= $_SESSION["number"]; $i++) { 
     echo "Numero "; 
     echo $i; 
     echo "<br />"; 
     for ($j = 1; $j <= $_SESSION["number2_{$i}"]; $j++) {   
      echo "Letter "; 
      echo $j; 
      echo ": "; 
      for ($id = 0; $id <= $_SESSION["id"]; $id++) {   
       echo "value: "; 
       echo " "; 
       echo $_SESSION['number3'][$i][$j][$id]; 
      } 
      echo "<br />";    
     }   
    } 

С эхом в моем Еогеаспе я буду получать данные, как это:

The value of $_SESSION["1"]["1"] ["0"] is '13:01' 
The value of $_SESSION["1"]["1"] ["1"] is '01:01' 
The value of $_SESSION["1"]["1"] ["2"] is '1' 
The value of $_SESSION["1"]["2"] ["0"] is '14:02' 
The value of $_SESSION["1"]["2"] ["1"] is '02:02' 
The value of $_SESSION["1"]["2"] ["2"] is '2' 
The value of $_SESSION["1"]["3"] ["0"] is '15:03' 
The value of $_SESSION["1"]["3"] ["1"] is '03:03' 
The value of $_SESSION["1"]["3"] ["2"] is '3' 

Это то, что я хочу, так что нет проблема здесь. Но когда я делаю для цикла я получаю это:

Numero 1 
Letter 1: value: 13:01 value: 01:01 value: 1 
Letter 2: value: 1 value: 0 value: 2 
Letter 3: value: 15:03 value: 03:03 value: 3 

Для письма 2, данные неверны для 2 первого значения, и я не понимаю, почему так после того, как все нормально. Есть ли у вас предложения? Спасибо

+0

ваш доступ к совершенно другому набору ключей в цикле for, чем в вашем цикле foreach. – DevZer0

ответ

0

Должно быть что-то не так с присвоением значения $ _SESSION ['number3'] [$ id1] [$ id2] [$ id3]. Вы можете попробовать «var_dump» или «var_export» в вашем коде, чтобы полюбить реальную структуру данных $ _SESSION, посмотреть, следует ли назначать неправильные ключи или где-то менять это значение.

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

+0

Я использую var_dump и получаю этот результат: строка (5) строка «01:01» (5) «13:01» строка (1) «1» строка (1) строка «0» (1) строка «1» (1) «2» строка (5) строка «03:03» (5) строка «15:03» (1) «3» Я не уверен, как его отладить – usertfwr

+0

Из приведенного выше результата кажется, что данные sotred int $ _SESSION неверны, чтобы отлаживать, вы можете следить за процессом обработки данных и пытаться выяснить, данные хранятся правильно, вне зависимости от того, где они были изменены, или с использованием неправильных ключей для его чтения. – TroyCheng

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