Манипулирование индексом массива php - PullRequest
1 голос
/ 16 января 2012

У меня есть вопрос здесь. Допустим, у меня есть массив вида:

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

            )



)

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 16 января 2012

Другой вариант для вашего конкретного случая может быть таким простым:

$out = array_map('reset', $in);
2 голосов
/ 16 января 2012

Вы должны пройтись по массивам и создать новый массив на основе внутренних значений.

$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 голосов
/ 16 января 2012
//$array is your array
foreach($array as $key=>$value)
{
   $new_array[] = $array[$key];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...