0

这是我在数据库中获取的数组:

大批 (

 [0] => Array 
    ( 
        [ID] => 4 
        [USERNAME] => John
    ) 

[1] => Array 
    ( 
        [ID] => 7 
        [USERNAME] => Ted 
    ) 

)

但我想这样:

Array 
( 
   [4] => John 
   [7] => Ted 
) 

array_merge我试图通过使用等来做我想做的事array_push。但我做不到。

4

3 回答 3

2

我会用一个简单的foreach.

$users = array();

foreach ($results as $user) {
  $users[$user['ID']] = $user['USERNAME'];
}
于 2014-05-31T12:27:48.113 回答
1

没有内置函数,只需编写一个简单的循环:

$new_array = array();
foreach ($array as $e) {
    $new_array[$e['ID']] = $e['USERNAME'];
}
于 2014-05-31T12:26:43.000 回答
1

如果您使用的是 PHP >= 5.5,您可以这样做:

$newArray = array_combine(
    array_column($oldArray, 'ID'),
    array_column($oldArray, 'USERNAME')
);

编辑

对于早期版本的 PHP,一个简单的等价物是

$newArray = array_combine(
    array_map(function($value) { return $value['ID']; }, $oldArray ),
    array_map(function($value) { return $value['USERNAME']; }, $oldArray )
);
于 2014-05-31T12:27:00.707 回答