циклы — Как извлечь массивы из другого массива в переполнении стека

У меня есть массив:

Array
(
[0] => Array
(
[filePath] => 0000000023.jpg
)

[1] => Array
(
[0] => Array
(
[Label] => Array
(
[0] => Person
[1] => Person
)

[Score] => Array
(
[0] => 0.999217033
[1] => 0.999318361
)

[Coordinates] => Array
(
[0] => Array
(
[0] => 338
[1] => 430
[2] => 307
[3] => 506
)

[1] => Array
(
[0] => 71
[1] => 104
[2] => 318
[3] => 483
)

)

)

)

)

Мне нужно, чтобы это выглядело так:

Array
(
[0] => Array
(
[filePath] => 0000000023.jpg
)

[1] => Array
(
[0] => Array
(
[Label] => Person
[Score] => 0.999217033
[Coordinates] =>
[0] => Array
(
[0] => 338
[1] => 430
[2] => 307
[3] => 506
)
)
[1] => Array
(
[Label] => Person
[Score] => 0.999318361
[Coordinates] =>
[0] => Array
(
[0] => 71
[1] => 104
[2] => 318
[3] => 483
)
)

)

)

В Ruby я могу использовать map и выбрать, чтобы получить результат, однако в PHP я не могу понять это. Мне удалось сделать это с Foreach цикл, однако, это очень уродливо и много, если заявление.

Буду признателен за любые рекомендации.

-2

Решение

Это может быть сделано с foreach, но без IF. Я думаю, что бесполезно использовать отображение PHP или другие функции массива для такой вещи (хотя)

Проверь это:

$tab = [
[
'filePath' => '0000000023.jpg'
],
[
[
'Label' => [
'Person',
'Person'
],
'Score' => [
0.999217033,
0.999318361
],
'Coordinates' => [
[338, 430, 307, 506],
[71, 104, 318, 483]
]
]
]
];

$returnTab[0] = $tab[0];

foreach ($tab[1][0]['Label'] as $pos => $label) {
$returnTab[1][] = [
'Label' => $label,
'Score' => $tab[1][0]['Score'][$pos],
'Coordinates' => $tab[1][0]['Coordinates'][$pos],
];
}
var_dump($returnTab);
2

Другие решения

Зачем извлекать массив? Вы не можете напрямую создать свой массив, как это?

Многомерный массив php очень уродлив. Вы не можете использовать коллекцию объектов?

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector