Php 用另一个值替换数组键

Php 用另一个值替换数组键,php,arrays,Php,Arrays,我有一个如下所示的数组: [0] => stdClass Object ( [id] => 152 [type_id] => 5 [name] => test 1 ) [1] => stdClass Object ( [id] => 153 [type_id] => 8 [name] => test 2 ) [2] =

我有一个如下所示的数组:

[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值更改了数组键。

您应该能够按如下方式取消设置stdClass的属性:

$newObject = array();
foreach ($oldObject as $object) {
    $typeID = $object->type_id;
    $newObject[$typeID] = $object;
    unset($newObject[$typeID]->type_id);
}

这将遍历
stdClass
对象数组,并将条目保存到新数组中。之后,属性
type\u id
将被删除。

将其传递到返回新数组的函数中:

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;
}
函数转换($arr)
{
$new_arr=array();
对于($i=0;$i
要替换一个值,只需使用:和添加另一个值:

您想删除type\u id键您尝试了什么吗?loop+unset(object->type\u id)使用foreach循环,然后再次将值分配给数组。您有没有办法解释一下为什么您降低了这个问题?