[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?
Пожалуйста, попробуйте это решение:
$result = array();
array_walk($data, function (&$value, &$key) use (&$result) {
$result[$value->id] = $value;
unset($result[$value->id]->id);
});
print_r($result);
Только значения массива потенциально могут быть изменены; его структура
не может быть изменено, то есть программист не может добавить, сбросить или изменить порядок
элементы. Если обратный вызов не соответствует этому требованию,
Поведение этой функции не определено и непредсказуемо.
Больше о array_walk
в документация
Других решений пока нет …