Php 数组索引操作

Php 数组索引操作,php,arrays,cakephp,multidimensional-array,Php,Arrays,Cakephp,Multidimensional Array,我有个问题。假设我有一个数组的形式: Array ( [0] => Array ( [0] => Array ( [A] => Array ( [id] => 1 [firstna

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

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
                    (
                    )

            )



)

提前谢谢

必须循环遍历数组,并基于内部值创建新数组

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

foreach($in_array as $k => $v) {
    $out_array[$k] = array_shift($v);
}
$in_数组=;
$out_array=array();
foreach($k=>v){
$out_数组[$k]=数组移位($v);
}

这里,
$out\u array[$k]
保留原始顶级数组键,
array\u shift($v)
表示为值挖掘一个级别(使用
array\u shift
获取中间级别数组中第一个元素的值,并将其应用为新数组的值).

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

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

foreach($in_array as $k => $v) {
    $out_array[$k] = array_shift($v);
}
$in_数组=;
$out_array=array();
foreach($k=>v){
$out_数组[$k]=数组移位($v);
}

在这里,
$out\u array[$k]
保留原始的顶级数组键,
array\u shift($v)
表示为值挖掘一个级别(使用
array\u shift
获取中间级别数组中第一个元素的值,并将其应用为新数组的值)。

另一个选项,针对您的特定情况,可以简单到:

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

针对您的具体情况,另一种选择可能非常简单:

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

我不知道为什么会有人对此投反对票,这对我来说似乎是一个合理的问题。我可以在两者中看到的区别是,第三级数组变成了第二级数组。你试过简单地说:
unusualArray[0]=unusualArray[0][0]
?我不知道为什么有人对此投了反对票,这对我来说似乎是一个合理的问题。我可以看到二者的区别是,第三级数组变成了第二级数组。你试过简单地说:
unusualray[0]=unusualray[0][0]
?+1,好主意!Ruby是我的主要语言,我真的应该想到这个=)。+1,好主意!Ruby是我的主要语言,我真的应该想到这个=)。