数组索引操作php

问题描述:

我在这里有一个问题。比方说,我有一种形式的数组:数组索引操作php

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [A] => Array 
         (
          [id] => 1 
          [firstname] => John 
          [lastname] => Smith 
          [email] => [email protected] 
         ) 

        [B] => Array 
         (
         ) 

       ) 

     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [A] => Array 
         (
          [id] => 2 
          [firstname] => Tommy 
          [lastname] => Tom 
          [email] => [email protected] 
         ) 

        [B] => Array 
         (
         ) 

       ) 

     ) 

) 

我怎样才能通过内部数组的索引,以便更换外数组的索引有一个这样的数组:

Array 
(
     [0] => Array 
      (
       [A] => Array 
        (
         [id] => 1 
         [firstname] => John 
         [lastname] => Smith 
         [email] => [email protected] 
        ) 

       [B] => Array 
        (
        ) 

      ) 



     [1] => Array 
      (
       [A] => Array 
        (
         [id] => 2 
         [firstname] => Tommy 
         [lastname] => Tom 
         [email] => [email protected] 
        ) 

       [B] => Array 
        (
        ) 

      ) 



) 

提前致谢!

+0

不知道为什么有人downvoted这一点,似乎是一个合理的问题给我。 – 2012-01-16 16:37:41

+0

我可以在两者中看到的区别是第三级数组成为第二级数组。你有没有试过简单地去:'不寻常的阵列[0] =不寻常的阵列[0] [0]'? – 2012-01-16 16:42:43

您必须遍历数组并根据内部值创建一个新数组。

$in_array = <your array>; 
$out_array = Array(); 

foreach($in_array as $k => $v) { 
    $out_array[$k] = array_shift($v); 
} 

这里,$out_array[$k]保持原始顶层数组键,和array_shift($v)说向下挖掘的值(使用array_shift取值在中等水平阵列中的第一元件中的一个电平,并应用它作为新数组的值)。

+0

谢谢你,你救了我三个小时!!! – user765368 2012-01-16 16:45:09

+0

很高兴为您效劳! – 2012-01-16 16:46:10

//$array is your array 
foreach($array as $key=>$value) 
{ 
    $new_array[] = $array[$key]; 
} 

另一种选择,为您的特定情况下,可以简单:

$out = array_map('reset', $in); 
+0

+1,好想法! Ruby是我的主要语言,我真的应该想到这个=)。 – 2012-01-17 00:31:00