数组索引操作php


Array index manipulation php

我有一个问题。假设我有一个数组的形式:

Array
(
     [0] => Array
         (
             [0] => Array
                 (
                     [A] => Array
                         (
                             [id] => 1
                             [firstname] => John
                             [lastname] => Smith
                             [email] => jsmith@gmail.com
                         )
                     [B] => Array
                         (
                         )
                 )
         )
     [1] => Array
         (
             [0] => Array
                 (
                     [A] => Array
                         (
                             [id] => 2
                             [firstname] => Tommy
                             [lastname] => Tom
                             [email] => ttom@gmail.com
                         )
                     [B] => Array
                         (
                         )
                 )
         )
)

我如何用内部数组的索引替换外部数组的索引,以获得这样的数组:

Array
(
        [0] => Array
            (
                [A] => Array
                    (
                        [id] => 1
                        [firstname] => John
                        [lastname] => Smith
                        [email] => jsmith@gmail.com
                    )
                [B] => Array
                    (
                    )
            )

        [1] => Array
            (
                [A] => Array
                    (
                        [id] => 2
                        [firstname] => Tommy
                        [lastname] => Tom
                        [email] => ttom@gmail.com
                    )
                [B] => Array
                    (
                    )
            )

)

提前感谢!

对于您的特定情况,另一个选项可能很简单:

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

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

$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获取中级数组中第一个元素的值,并将其应用为新数组的值)。

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