PHP根据对象的值定义数组的键[duplicate]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP根据对象的值定义数组的键[duplicate]相关的知识,希望对你有一定的参考价值。

使用php,我有对象列表。每个对象都有id字段:

$myArray = [
    0 => Object{
        'id' => 1,
        'title' => 'My title 1'
    },
    1 => Object{
        'id' => 2,
        'title' => 'My title 2'
    },
    2 => Object{
        'id' => 6,
        'title' => 'My title 6'
    }
]

我想从id对象无附加foreach]中设置数组键。我想要这个结果:

$myArray = [
    1 => Object{
        'id' => 1,
        'title' => 'My title 1'
    },
    2 => Object{
        'id' => 2,
        'title' => 'My title 2'
    },
    6 => Object{
        'id' => 6,
        'title' => 'My title 6'
    }
]

我认为array_map有可能,但我不知道该怎么做。我试过了,但它返回了子数组:

$newArray = array_map(function($entry) {
    return [$entry->id => $entry];
}, $myArray);

// return :

[
    0 => [
        1 => Object{
            'id' => 1,
            'title' => 'My title 1'
        },
    ],
    1 => [
        2 => Object{
            'id' => 2,
            'title' => 'My title 2'
        },
    ],
    2 => [
        6 => Object{
            'id' => 6,
            'title' => 'My title 6'
        }
    ]
]

使用PHP,我有对象列表。每个对象都有id字段:$ myArray = [0 => Object {'id'=> 1,'title'=>'我的标题1'},1 => Object {'id'=> 2,...] >

答案
$myArray = array_column($myArray, null, 'id');
另一答案

尝试使用此

以上是关于PHP根据对象的值定义数组的键[duplicate]的主要内容,如果未能解决你的问题,请参考以下文章

PHP 数组排序

PHP数组排序

PHP自定义排序:根据指定的键手动对数组进行排序

如何根据javascript中的键合并和替换两个数组中的对象?

数组对象之间的简易转换

php之快速入门学习-11(数组排序)