Трехмерный массив преобразовать в двумерный массив в php - PullRequest
0 голосов
/ 27 февраля 2020

Этот тип массива

Array
    (
        [0] => Array
            (
                [User] => Array
                    (
                        [id] => 57341
                        [updated] => 
                        [userId] => 57341
                        [value] => 
                        [lat] => 53.4537812
                        [lon] => -2.1792437
                    )

                [0] => Array
                    (
                        [feed_likes] => NA
                        [category_idx] => -1
                        [type] => User
                    )

            )

        [1] => Array
            (
                [User] => Array
                    (
                        [id] => 57336
                        [updated] => 
                        [userId] => 57336
                        [value] => 
                        [lat] => 53.473684
                        [lon] => -2.2399827
                    )

                [0] => Array
                    (
                        [feed_likes] => NA
                        [category_idx] => -1
                        [type] => User
                    )

            )
    )

Трехмерный массив преобразуется в Двумерный массив в php, но я не могу создать массив удовлетворен сам, поэтому мне нужна помощь для создания моего удовлетворенного массива в php Выше массива мои данные, мне нужно, чтобы ниже тип массива, но я не мог создать, поэтому, пожалуйста, помогите мне

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [id] => 57341
                    [updated] => 
                    [userId] => 57341
                    [value] => 
                    [feed_likes] => NA
                    [lat] => 53.4537812
                    [lon] => -2.1792437
                    [category_idx] => -1
                    [type] => User
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [id] => 57336
                    [updated] => 
                    [userId] => 57336
                    [value] => 
                    [feed_likes] => NA
                    [lat] => 53.473684
                    [lon] => -2.2399827
                    [category_idx] => -1
                    [type] => User
                )

        )
) 

Ответы [ 3 ]

2 голосов
/ 27 февраля 2020

Вы можете использовать оператор splat ... с array_merge

foreach($a as $child){
  $flatten[] = array_merge(...$child);
}

Рабочий пример: - https://3v4l.org/HkUh6

0 голосов
/ 27 февраля 2020

Немного отличается от вашего примера вывода, но вы можете объединить ваши внутренние массивы.

<?php

$data =
[
    [
        'animal' => [
            'type' => 'fox'
        ],
        [
            'colour' => 'orange'
        ]
    ],
    [
        'animal' => [
            'type' => 'panda'
        ],
        [
            'colour' => 'black and white'
        ]
    ]
];

$result =
array_map(
    function($v) {
        return array_merge($v['animal'], $v[0]);
    },
    $data
);

var_export($result);

Вывод:

array (
  0 => 
  array (
    'type' => 'fox',
    'colour' => 'orange',
  ),
  1 => 
  array (
    'type' => 'panda',
    'colour' => 'black and white',
  ),
)
0 голосов
/ 27 февраля 2020

Если я вас правильно понял, вам нужно объединить пользовательский массив и в этом случае второй массив в этом ключе. в этом случае что-то подобное должно работать

foreach($array as $key=>$deep1){
    $newArray = [];
    foreach($deep1 as $deep2){
       $newArray = array_merge($newArray,$deep2)
    }
    $array[$key] = $newArray;
}

Правильно ли я понял ваш вопрос?

...