2017-02-06 21 views
1

これは私のPHPコードです。これにより、MySQLデータベースからデータがフェッチされ、配列に格納されます。だから、インデックス配列から連想配列へ -

、当初、私はこの配列

の$ array_initを持っています。

print_r($ array_init);

Array ( 
    [0] => Array ([id] => 2 [class_name] => Jr KG) 
    [1] => Array ([id] => 3 [class_name] => Sr KG) 
    [2] => Array ([id] => 4 [class_name] => I) 
    [3] => Array ([id] => 5 [class_name] => II) 
    [4] => Array ([id] => 6 [class_name] => III) 
    [5] => Array ([id] => 7 [class_name] => IV) 
    [6] => Array ([id] => 8 [class_name] => V) 
    [7] => Array ([id] => 9 [class_name] => VI) 
    [8] => Array ([id] => 10 [class_name] => VII) 
    [9] => Array ([id] => 11 [class_name] => VIII) 
    [10] => Array ([id] => 12 [class_name] => IX) 
    [11] => Array ([id] => 13 [class_name] => X) 
) 

速くコーディング

のためにそう

をコーディングしながら、私はこのような連想配列を作成したいの高速トラバーサルを望んでいた:

Array ( 
    [2] => Jr KG) 
    [3] => Sr KG) 
    [4] => I) 
    [5] => II) 
    [6] => III) 
    [7] => IV) 
    [8] => V) 
    [9] => VI) 
    [10] => VII) 
    [11] => VIII) 
    [12] => IX) 
    [13] => X) 
) 

私はこの

を試してみました
foreach ($array_init as $row_class) { 
     $classes[] = [$row_class['id']=>$row_class['class_name']]; 
} 

私は、質問とソリューションの両方が異なっているようところで、それは重複しません。この

Array ([0] => Array ( 
    [2] => Jr KG) 
    [1] => Array ([3] => Sr KG) 
    [2] => Array ([4] => I) 
    [3] => Array ([5] => II) 
    [4] => Array ([6] => III) 
    [5] => Array ([7] => IV) 
    [6] => Array ([8] => V) 
    [7] => Array ([9] => VI) 
    [8] => Array ([10] => VII) 
    [9] => Array ([11] => VIII) 
    [10] => Array ([12] => IX) 
    [11] => Array ([13] => X) 
) 

を得ました。

+2

'$結果= array_column($ originalArray、 'CLASS_NAME'、 'ID');' –

+0

@MarkBakerありがとう、これは魅力 –

答えて

3

使用array_column機能:

$classes = array_column($array_init, 'class_name', 'id'); 
+1

のように働いた私の答えを削除この方がさらに良かったので –

+0

@RomanPerekhrestよろしくお願いいたします –

+0

@シルベスターダス、ようこそ – RomanPerekhrest