У меня есть массив:
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
цикл, однако, это очень уродливо и много, если заявление.
Буду признателен за любые рекомендации.
Это может быть сделано с 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);
Зачем извлекать массив? Вы не можете напрямую создать свой массив, как это?
Многомерный массив php очень уродлив. Вы не можете использовать коллекцию объектов?