2012-11-28 54 views
0

更新:对不起,我想通了..我只拿出$值[0],所以关闭导致其唯一的结果。需要更多的睡眠。非常感谢。我仍然乐于提供建议,以更清晰的方式分割数组。排序/拆分多维阵列​​成许多较小的

我有这个结构的阵列$tdata

Array 
(
    [] => Array 
    (
     [0] => Array 
      (
       [firstName] => test 
       [lastName] => test 
       [userName] => [email protected] 
       [password] => test 
       [course] => test 
       [role] => test 
      ) 

     [1] => Array 
      (
       [firstName] => test 
       [lastName] => test 
       [userName] => [email protected] 
       [password] => test 
       [course] => test 
       [role] => test 
      ) 

    ) 

    [delete] => Array 
    (
     [0] => Array 
      (
       [firstName] => test 
       [lastName] => test 
       [userName] => [email protected] 
       [password] => test 
       [course] => test 
       [role] => test 
      ) 

    ) 

    [update] => Array 
    (
     [0] => Array 
      (
       [firstName] => test 
       [lastName] => test 
       [userName] => [email protected] 
       [password] => test 
       [course] => test 
       [role] => test 
      ) 

    ) 

    [outrole] => Array 
    (
     [0] => Array 
      (
       [firstName] => test 
       [lastName] => test 
       [userName] => [email protected] 
       [password] => test 
       [course] => test 
       [role] => test 
      ) 

    ) 

) 

我想它分割成更小的阵列。像这样:

foreach ($tdata as $key => $value) { 

    if ($key == '') { 
     $create[] = $value[0]; 
    }elseif ($key == 'outrole') { 
     $outrole[] = $value[0]; 
    }elseif ($key == 'delete') { 
     $delete[] = $value[0]; 
    }elseif ($key == 'update') { 
     $update[] = $value[0]; 
    }else{ 
    $noaction[] = $value[0]; 
    } 

} 

这样,数组不断改写自己,我想。 print_r($create)或任何其他数组总是只返回1个结果。可以启发我,告诉我我做错了什么?

如果有更好的方法来做到这一点,我也很乐意听到。

在此先感谢!

+1

你只想要每个数组中的第一项? – MrCode

+0

啊,谢谢!我已经把自己瞎了。我只拿出$ value [0] .. doh!非常感谢! – Bolli

回答

1

如果这些键始终存在,那么你并不真的需要一个循环:

$create = $original['create']; 
$outrole = $original['outrole']; 

如果它们设置您可以添加一个检查:

$create = isset($original['create']) ? $original['create'] : array(); 

如果它不存在,这将设置为空数组。

1

你的数组是嵌套的。为了让小数组,你应该内在价值内循环:

foreach ($tdata as $key => $value) { 
    if ($key == '') { 
     foreach($value as $subValue) { 
      $create[] = $subValue; 
     } 
    }elseif ($key == 'outrole') { 
     foreach($value as $subValue) { 
      $outrole[] = $subValue; 
     } 
    } // ... and so on...   
}