Php 从二维数组到一维数组?

Php 从二维数组到一维数组?,php,arrays,multidimensional-array,fuelphp,Php,Arrays,Multidimensional Array,Fuelphp,哎,, 我正在使用FuelPHP并这样做 $query = \DB::select( 'username' ) ->from( 'users' ) ->execute() ->as_array(); 我得到的数组如下所示 Array ( [0] => Array ( [username] => daGrevis ) [1] => Array ( [username] => whateve

哎,, 我正在使用FuelPHP并这样做

$query =
  \DB::select( 'username' )
    ->from( 'users' )
    ->execute()
    ->as_array();
我得到的数组如下所示

Array
(
  [0] => Array
  (
    [username] => daGrevis
  )

  [1] => Array
  (
    [username] => whatever
  )

  [2] => Array
  (
    [username] => foobar
  )

)
这绝对不是我需要的。以下是我的“理想阵列”示例:


那么如何获得“理想阵列”?也许我在查询中做错了什么。。。如果没有。。。如何将数组#1转换为数组#2?也许使用循环?还是有内置的功能?我很困惑。

做一个foreach循环来转换它,如下所示:

$arr2 = array();
foreach ($arr1 as &$value) {
array_push($arr2, $value[username]);
}

是的,foreach循环应该可以做到:

$new_array = array();
foreach($query as $result_num => $sub_array)
{
    $new_array[$result_num] = $sub_array[username];
}

您可以使用燃油本机执行此操作:

$query = \DB::select( 'username' )
           ->from( 'users' )
           ->execute()
           ->as_array(null, 'username');

这将返回您想要的结果。

这就是坏框架重新发明轮子的问题所在。在PDO中,您将编写
->fetchAll(PDO::FETCH_COLUMN,0)
@nikic您是在谈论Fuel还是所有PHP框架?如果只是关于燃料。。。那就没问题了,因为它只是测试版。)我指的是任何框架,它不是简单地使用PDO提供的设计良好的接口,而是使用mysqli/mysql重新实现。这与框架无关,这是原生mysql绑定在默认情况下返回数据的方式。我们可以在中添加一个方法,以很容易地返回这样的数组,但是对于这个已经存在了几十年的基本数组结构问题,有很多非常简单的解决方案。另请参见:
$query = \DB::select( 'username' )
           ->from( 'users' )
           ->execute()
           ->as_array(null, 'username');