0
[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数组函数?

4

1 回答 1

1

请尝试此解决方案:

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

只有数组的值可能会改变;它的结构不能改变,即程序员不能添加、取消设置或重新排序元素。如果回调不遵守此要求,则此函数的行为未定义且不可预测。

更多array_walk关于文档

于 2015-05-29T05:58:26.487 回答