php – 如何使用数组值作为无循环的键?

循环是耗时的,大家都知道。这正是我想要避免的事情,即使它在一个小规模。每一点都有帮助。那么,如果当然没有设定:)

关于这个问题

我有一个数组:

array(3) {
    '0' => array(2) {
        'id'   => 1234,
        'name' => 'blablabla',
    },
    '1' => array(2) {
        'id'   => 1235,
        'name' => 'ababkjkj',
    },
    '2' => array(2) {
        'id'   => 1236,
        'name' => 'xyzxyzxyz',
    },
}

我想要做的是转换这个数组如下:

array(3) {
    '1234' => 'blablabla',
    '1235' => 'asdkjrker',
    '1236' => 'xyzxyzxyz',
}

我想这是一个艰难的事情,但我的头脑现在被打破了,除了循环以完成这个任务之外,我不能想到任何东西。

只需使用array_combine和array_column作为

array_combine(array_column($array,'id'), array_column($array,'name'));

或者你可以简单地使用array_walk如果你有PHP< 5.5 as

$result = array();
array_walk($array, function($v)use(&$result) {
    $result[$v['id']] = $v['name']; 
});

编辑:

对于具有PHP>的未来用户5.5可以简单地使用array_column as

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

Fiddle(array_walk)

http://stackoverflow.com/questions/31202835/how-to-use-array-values-as-keys-without-loops

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:php – 如何使用数组值作为无循环的键?