ключ массива изменения php со значением подмассива

[items] => stdClass Object
(
[1] => stdClass Object
(
[id] => 146300
[name]=>aa
)
[2] => stdClass Object
(
[id] => 146301
[name]=>bb
)
)
----------------->changing to
[items] => stdClass Object
(
[ 146300] => stdClass Object
(
[name] =>aa
)
[146301] => stdClass Object
(
[name] => bb
)
)

Как я могу сделать без использования foreach. есть ли функция массива php?

0

Решение

Пожалуйста, попробуйте это решение:

$result = array();
array_walk($data, function (&$value, &$key) use (&$result) {
$result[$value->id] = $value;
unset($result[$value->id]->id);
});
print_r($result);

Только значения массива потенциально могут быть изменены; его структура
не может быть изменено, то есть программист не может добавить, сбросить или изменить порядок
элементы. Если обратный вызов не соответствует этому требованию,
Поведение этой функции не определено и непредсказуемо.

Больше о array_walk в документация

1

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

Других решений пока нет …