2011-03-27 10 views
3

이봐, 내가 FuelPHP를 사용하여 다음과 같이하고있어 ... 아래 그림과 같이 내가 배열을 얻고있다2 차원 배열에서 1 차원 배열로?

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

.

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

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

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

) 

필자에게 필요한 것은 아닙니다. 다음은 나를위한 "이상적인 배열"의 예입니다.

Array 
(
    [0] => daGrevis 
    [1] => whatever 
    [2] => foobar 
) 

"이상적인 배열"을 어떻게 얻을 수 있습니까? 어쩌면 내가 뭔가 잘못 쿼리에서 ... 만약에 ... 어떻게 배열 # 2 배열 # 1로 변환 할 수 있습니까? 어쩌면 루프를 사용하고 있을까요? 또는 내장 기능이 있습니까? 나는 혼란스러워.

+1

그건 바퀴를 다시 발명 나쁜 프레임 워크의 문제입니다. PDO에서는'-> fetchAll (PDO :: FETCH_COLUMN, 0)'을 쓸 것입니다. – NikiC

+0

@nikic 연료 또는 모든 PHP 프레임 워크에 대해 일반적으로 말하고 있습니까? Fuel에 대해서만 ... 그렇다면 그것은 베타 버전이기 때문에 그럴 것입니다.) – daGrevis

+0

필자는 PDO가 제공하는 잘 설계된 인터페이스를 단순히 사용하는 대신 mysqli/mysql을 사용하여 다시 구현하는 프레임 워크에 대해 이야기하고 있습니다. – NikiC

답변

11

당신은 기본적으로 연료와 함께이 작업을 수행 할 수 있습니다 :

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

, 이런 식으로 뭔가를 변환하는 foreach 루프를 수행

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

네를하는 foreach 루프 트릭을 할해야

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

이것은 정확히 원하는 것을 반환합니다.

관련 문제