2013-10-25 2 views
0

У меня есть массив $ _POSTпочему Еогеасп идти до последнего элемента PHP

Array 
(
    [dddd] => Array 
     (
      [students] => Array 
       (
        [парарпа] => Array 
         (
          [zach1] => 1 
          [zach2] => 1 
          [zach3] => 2 
          [zach4] => 3        
          [ekz1] => 5 
          [ekz2] => 5 
          [ekz3] => 5 
          [ekz4] => 
         ) 

        [ававп] => Array 
         (
          [zach1] => 3 
          [zach2] => 5 
          [zach3] => 4 
          [zach4] => 2 
          [ekz1] => 4 
          [ekz2] => 3 
          [ekz3] => 2 
          [ekz4] => 
         ) 

       ) 

      [zach1] => рпа 
      [zach2] => рпарпарпар 
      [zach3] => 
      [zach4] => пар 
      [ekz1] => пав 
      [ekz2] => авпав 
      [ekz3] => ва 
      [ekz4] => 
     ) 

    [ggg] => Array 
     (
      [students] => Array 
       (
        [авпва] => Array 
         (
          [zach1] => 3 
          [zach2] => 3 
          [zach3] => 2 
          [zach4] => 
          [ekz1] => 4 
          [ekz2] => 
          [ekz3] => 
          [ekz4] => 
         ) 

       ) 

      [zach1] => паыв 
      [zach2] => авы 
      [zach3] => ыва 
      [zach4] => 
      [ekz1] => выа 
      [ekz2] => 
      [ekz3] => 
      [ekz4] => 
     ) 

    [fffff] => Array 
     (
      [students] => Array 
       (
        [авыв] => Array 
         (
          [zach1] => 5 
          [zach2] => 5 
          [zach3] => 
          [zach4] => 
          [ekz1] => 4 
          [ekz2] => 4 
          [ekz3] => 
          [ekz4] => 
         ) 

        [ваыыва] => Array 
         (
          [zach1] => 3 
          [zach2] => 3 
          [zach3] => 
          [zach4] => 
          [ekz1] => 2 
          [ekz2] => 3 
          [ekz3] => 
          [ekz4] => 
         ) 

       ) 

      [zach1] => ва 
      [zach2] => ва 
      [zach3] => 
      [zach4] => 
      [ekz1] => ва 
      [ekz2] => ва 
      [ekz3] => 
      [ekz4] => 
     ) 

) 

И я пытаюсь

foreach($_POST as $groupName=>$data) {echo $groupName;} 

и только повторяет последний «FFFFF». Я понятия не имею, что, черт возьми, происходит. Помоги мне, пожалуйста. количество эхо ($ _ POST); эхо 3

+0

У вас есть только 3 товаров в $ _POST. Его три массива с вспомогательными массивами. – subZero

+3

Этого не должно быть. Пожалуйста, предоставьте * полный, автономный исполняемый код, который демонстрирует именно эту проблему. – deceze

+2

Вы итерируете через массив с помощью foreach дважды или более? использование 'foreach' каждый раз перемещает указатель на элемент массива. Таким образом, если вы используете 'foreach', используйте' reset ($ array) 'перед тем, как вы снова выполните повторение массива. – Latheesan

ответ

0

решаемые с его

$keys = array_keys($_POST); 

for($i = 0; $i < count($keys); $i++) 
{ 
    $data = $_POST[$keys[$i]]; 
    $groupName = $keys[$i]; 
} 

Еще не получил ни малейшего представления, почему Еогеасп работает как то

0

Попробуйте это:

<?php 

// Dummy Post Data 
$_POST = array(
    'dddd' => array(
     'students' => array(
      'парарпа' => array('zach1' => 1, 'zach2' => 2, 'zach3' => 2), 
      'ававп' => array('zach1' => 3, 'zach2' => 5, 'zach3' => 4), 
     ), 
     'zach1' => 'рпа', 
     'zach2' => 'рпарпарпар' 
    ), 
    'ggg' => array(
     'students' => array(
      'парарпа' => array('zach1' => 1, 'zach2' => 2, 'zach3' => 2), 
      'ававп' => array('zach1' => 3, 'zach2' => 5, 'zach3' => 4), 
     ), 
     'zach1' => 'рпа', 
     'zach2' => 'рпарпарпар' 
    ), 
    'fffff' => array(
     'students' => array(
      'парарпа' => array('zach1' => 1, 'zach2' => 2, 'zach3' => 2), 
      'ававп' => array('zach1' => 3, 'zach2' => 5, 'zach3' => 4), 
     ), 
     'zach1' => 'рпа', 
     'zach2' => 'рпарпарпар' 
    ), 
); 

// Test Iteration 
foreach ($_POST as $key => $data) 
{ 
    echo "<b>$key</b><br />"; 
    foreach ($data as $innerKey => $innerData) 
    { 
     if (is_array($innerData)) 
     { 
      echo "<i>$innerKey</i><br />"; 
      foreach ($innerData as $studentName => $studentData) 
      { 
       echo "Student [$studentName] = "; 
       foreach ($studentData as $studentDataKey => $studentDataValue) { 
        echo "$studentDataKey => $studentDataValue | "; 
       } 
      } 
     } 
     else { 
      echo "<i>$innerKey</i> = $innerData<br />"; 
     } 
    } 
    echo "<hr />"; 
} 

?> 

Выход:

enter image description here

Я итерацию через него просто отлично.

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