2011-03-27 4 views
3

Hey, J'utilise FuelPHP et de faire comme ça ...D'une matrice bidimensionnelle à une matrice dimensionnelle?

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

Je reçois tableau comme indiqué ci-dessous.

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

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

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

) 

Ce n'est certainement pas ce dont j'ai besoin. Voici un exemple de "tableau idéal" pour moi:

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

Alors, comment puis-je obtenir "tableau idéal"? Peut-être que je fais quelque chose de mal dans la requête ... si non ... comment puis-je convertir le tableau # 1 en tableau # 2? Utiliser des boucles peut-être? Ou y a-t-il une fonction intégrée? Je suis confus.

+1

C'est le problème avec les mauvais cadres réinventant la roue. Dans PDO vous écrire '-> fetchAll (PDO :: FETCH_COLUMN, 0)'. – NikiC

+0

@nikic Parlez-vous de Fuel ou de tous les frameworks PHP en général? Si seulement sur le carburant ... alors c'est ok, car c'est seulement en version bêta. – daGrevis

+0

Je parle de n'importe quel framework, qui, au lieu d'utiliser simplement les interfaces très bien conçues que PDO fournit, utilise une réimplémentation en utilisant mysqli/mysql. – NikiC

Répondre

11

Vous pouvez le faire avec nativement carburant:

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

Cela retournera exactement ce que vous voulez.

2

Faites une boucle foreach pour le convertir, quelque chose comme ceci:

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

Eh oui, une boucle foreach devrait faire l'affaire:

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