Php 更改数组的内容以提高效率

Php 更改数组的内容以提高效率,php,arrays,Php,Arrays,在我的数组上执行打印时,我得到以下输出: Array ( [0] => Array ( [id] => 178 [name] => Briar Price ) [1] => Array ( [id] => 90 [name] => Bradley Kramer ) [2] =

在我的数组上执行
打印时,我得到以下输出:

Array
(
    [0] => Array
        (
            [id] => 178
            [name] => Briar Price
        )

    [1] => Array
        (
            [id] => 90
            [name] => Bradley Kramer
        )

    [2] => Array
        (
            [id] => 508
            [name] => Calvin Yang
        )

    [3] => Array
        (
            [id] => 457
            [name] => Charles Valenzuela
        )

    ... and so on
如何修改数组使其看起来像这样

Array
(
    [178] => Briar Price
    [90] => Bradley Kramer
    [508] => Calvin Yang
    [457] => Charles Valenzuela
    ... and so on
)
我只想让ID成为值名称的键。在数组重新排序时,我总是遇到问题。

使用-

您可以使用andPHP函数来完成,而无需应用自定义逻辑

这是你怎么做的

<?php
    $keys=array_column($mainarray,'id');
    $values=array_column($mainarray,'name');

    $finalarray=array_combine($keys,$values);

我会使用
array\u combine
将新键附加到值

$results = [
    ['id'=>1,'name'=>'John'],['id'=>2,'name'=>'Jane'],
];

$results = array_combine(
    array_column($results,'id'), //use 'id' column as keys
    array_column($results,'name') //use 'name' column as values
);
//now $results is [1=>'John', 2=>'Jane']
将第三个参数传递给,使其键为

$array = array_column($users, 'name', 'id');

print_r($array);

array_column()要求参数1为数组,字符串givenMy bad!更正了,谢谢:)有点长,但正确!!为什么这么长?这是一行代码,经过格式化和注释,易于阅读。从使用多个数组函数的意义上讲,它没有您的解决方案那么优雅!!山姆回答:几天前。由于某种原因,我尝试这样做时出错了
试图从名称空间my\namespace调用函数“array\u column”
@Mentos93尝试在前面添加斜杠:
\array\u column(…)
@Saty我不会链接到与4天前完全相同的答案:因为这不会产生OP问题的确切输出。添加斜杠会产生相同的错误,但来自全局名称空间。但没关系,我明白这里发生了什么。虽然所有的答案都是好的,但我会接受这一个作为正确答案。我有一个想法,但如何实现它总是让我困惑。我会从这件事中学习(但也会从其他的事中学习。每个人都有我的投票权)。
$array = array_column($users, 'name', 'id');

print_r($array);