Php 从数组对象创建数组的更好方法

Php 从数组对象创建数组的更好方法,php,arrays,Php,Arrays,我有这样一个数组对象: Array ( [0] => stdClass Object ( [id] => 1 [name] => sam ) [1] => stdClass Object ( [id] => 2 [name] => tim ) [2] => stdCl

我有这样一个数组对象:

 Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [name] => sam
        )

    [1] => stdClass Object
        (
            [id] => 2
            [name] => tim
        )

    [2] => stdClass Object
        (
            [id] => 3
            [name] => nic
        )

)
我想要这个:

Array
(
    [sam] => sample text
    [tim] => sample text
    [nic] => sample text
)
我目前的做法是:

$arr = array();

foreach($multi_arr as $single_arr) {
    $arr[$single_arr->name] = "sample text";
}

有没有比这更干净/更好的方法?谢谢

您可以使用
array\u map
获取所有键,然后使用
array\u fill\u keys
填充最终的数组

$arr = array_fill_keys(array_map(function($e) {
    return $e->name;
}, $multi_arr), "sample text");
如果
示例文本
是stdClass对象的一部分:

$arr = array_merge(...array_map(function($e) {
    return [$e->name => $e->description];
}, $multi_arr));

您可以使用
array\u map
获取所有键,然后使用
array\u fill\u keys
填充最终的数组

$arr = array_fill_keys(array_map(function($e) {
    return $e->name;
}, $multi_arr), "sample text");
如果
示例文本
是stdClass对象的一部分:

$arr = array_merge(...array_map(function($e) {
    return [$e->name => $e->description];
}, $multi_arr));

这需要一个语言标签。@Thilo谢谢你。我将更新由
json\u decode()
?@axiac生成的数组否,此数据结构来自数据库。这需要一个语言标记。@Thilo谢谢。我将更新由
json_decode()
?@axiac生成的数组否,此数据结构来自数据库。如果“示例文本”是动态的,会怎么样?所有的“示例文本”都一样吗?将它放在一个变量中,并使用$multi_arr具有“description”,我可以调用$single_arr->description来填充“示例文本”。很抱歉,我的问题中应该包括这一点。如果“示例文本”是动态的,怎么办?所有人的“示例文本”都一样吗?将它放在一个变量中,并使用$multi_arr具有“description”,我可以调用$single_arr->description来填充“示例文本”。很抱歉,我应该在我的问题中包括这个