我有一个看起来像这样的数组:
[0] => stdClass Object
(
[id] => 152
[type_id] => 5
[name] => test 1
)
[1] => stdClass Object
(
[id] => 153
[type_id] => 8
[name] => test 2
)
[2] => stdClass Object
(
[id] => 154
[type_id] => 13
[name] => test 3
)
有什么方法可以将它转换成下面的数组吗?
[5] => stdClass Object
(
[id] => 152
[name] => test 1
)
[8] => stdClass Object
(
[id] => 153
[name] => test 2
)
[13] => stdClass Object
(
[id] => 154
[name] => test 3
)
基本上我用type_id值更改了数组键。
答案 0 :(得分:3)
您应该可以取消设置stdClass
的属性,如下所示:
$newObject = array();
foreach ($oldObject as $object) {
$typeID = $object->type_id;
$newObject[$typeID] = $object;
unset($newObject[$typeID]->type_id);
}
这会遍历您的stdClass
个对象数组,并将该条目保存到一个新数组中。之后,属性type_id
将被删除。
答案 1 :(得分:2)
将其传递给返回新数组的函数:
function convert($arr)
{
$new_arr = array();
for ($i = 0; $i < count($arr); $i++)
{
$id = $arr[$i]['type_id'];
unset($arr[$i]['type_id']);
$new_arr[$id] = $arr[$i];
}
return $new_arr;
}
答案 2 :(得分:2)