Как заменить массивы многомерного массива на элементы этого массива с помощью php?

В многомерном массиве ниже, как бы я заменить индексы верхнего уровня [0] [1] & [2] с их соответствующими значениями из [SUB1]

Array
(
[0] => Array
(
[SUB1] => AAA111
[SUB2] => Description 1
[SUB3] => 10
)

[1] => Array
(
[SUB1] => BBB222
[SUB2] => Description 2
[SUB3] => 20
)

[2] => Array
(
[SUB1] => CCC333
[SUB2] => Description 3
[SUB3] => 30
)

)

Мне удалось использовать $sub1 = array_column( $array, 'SUB1' ); чтобы получить приведенный ниже массив, но я не уверен, существует ли простая функция, чтобы использовать его для замены индексов в исходном массиве значениями.

Array
(
[0] => AAA111
[1] => BBB222
[2] => CCC333
)

Редактировать:

Желаемый результат:

Array
(
[AAA111] => Array
(
[SUB2] => Description 1
[SUB3] => 10
)

[BBB222] => Array
(
[SUB2] => Description 2
[SUB3] => 20
)

[CCC333] => Array
(
[SUB2] => Description 3
[SUB3] => 30
)

)

0

Решение

Пожалуйста, проверьте ниже пример, где $ test равен вашему основному массиву.

$output = [];
foreach ($test as $t) {
$first = reset($t);
$remaining = array_shift($t);
$output[$first] = $t;
}

echo '<pre>';
print_r($output);
2

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

В многомерном массиве ниже, как бы я заменить индексы верхнего уровня [0] [1] & [2] с их соответствующими значениями из [SUB1]

Array
(
[0] => Array
(
[SUB1] => AAA111
[SUB2] => Description 1
[SUB3] => 10
)

[1] => Array
(
[SUB1] => BBB222
[SUB2] => Description 2
[SUB3] => 20
)

[2] => Array
(
[SUB1] => CCC333
[SUB2] => Description 3
[SUB3] => 30
)

)

Мне удалось использовать $sub1 = array_column( $array, 'SUB1' ); чтобы получить приведенный ниже массив, но я не уверен, существует ли простая функция, чтобы использовать его для замены индексов в исходном массиве значениями.

Array
(
[0] => AAA111
[1] => BBB222
[2] => CCC333
)

Редактировать:

Желаемый результат:

Array
(
[AAA111] => Array
(
[SUB2] => Description 1
[SUB3] => 10
)

[BBB222] => Array
(
[SUB2] => Description 2
[SUB3] => 20
)

[CCC333] => Array
(
[SUB2] => Description 3
[SUB3] => 30
)

)
0

Пожалуйста, проверьте ниже пример, где $ test равен вашему основному массиву.

$output = [];
foreach ($test as $t) {
$first = reset($t);
$remaining = array_shift($t);
$output[$first] = $t;
}

echo '<pre>';
print_r($output);
0

active «data-shortcut =» A
самый старый «data-shortcut =» O
голосует «data-shortcut =» V
2
По вопросам рекламы [email protected]