1

This is my PHP code. This will fetch the data from a MySQL database and store in an array.

So, initially I have this array

$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 ) 
)

I wanted a fast traversal while coding

So for faster coding

I wanted to create an associative array like this:

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 ) 
)

I tried this

foreach ($array_init as $row_class) {
        $classes[] = [$row_class['id']=>$row_class['class_name']];
}

I got this

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 ) 
) 

BTW, it's not a duplicate as both question and solution are different.

Sylvester Das
  • 164
  • 11

1 Answers1

3

Use array_column function:

$classes = array_column($array_init, 'class_name', 'id');
RomanPerekhrest
  • 88,541
  • 4
  • 65
  • 105