В многомерном массиве ниже, как бы я заменить индексы верхнего уровня [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
)
)
Пожалуйста, проверьте ниже пример, где $ test равен вашему основному массиву.
$output = [];
foreach ($test as $t) {
$first = reset($t);
$remaining = array_shift($t);
$output[$first] = $t;
}
echo '<pre>';
print_r($output);
В многомерном массиве ниже, как бы я заменить индексы верхнего уровня [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
)
)
Пожалуйста, проверьте ниже пример, где $ test равен вашему основному массиву.
$output = [];
foreach ($test as $t) {
$first = reset($t);
$remaining = array_shift($t);
$output[$first] = $t;
}
echo '<pre>';
print_r($output);