function array_columns($arr, $column_keys=null, $index_key=null) {
$result_arr = array();
$keys = isset($column_keys) ? explode(',', $column_keys) : array();
if ($arr) {
foreach($arr as $k=>$v) {
if ($keys) {
$tmp = array();
foreach($keys as $key) {
$tmp[$key] = $v[$key];
}
} else {
$tmp = $v;
}
if (isset($index_key)) {
$result_arr[$v[$index_key]] = $tmp;
} else {
$result_arr[] = $tmp;
}
}
}
return $result_arr;
}
$arr = array(
array('language'=>'JavaScript', 'code'=>1298, 'level'=>2, "spec"=> 'Z', 'https'=> 17),
array('language'=>'PHP', 'code'=>9814, 'level'=>1, "spec"=> 'X', 'https'=> 20),
array('language'=>'Java', 'code'=>5621, 'level'=>4, "spec"=> 'W', 'https'=> 98),
array('language'=>'C#', 'code'=>1111, 'level'=>5, "spec"=> 'P', 'https'=> 39)
);
$result_arr = array_columns($arr, 'language,level,https', 'spec');
print_r($result_arr);
/*
run:
Array
(
[Z] => Array
(
[language] => JavaScript
[level] => 2
[https] => 17
)
[X] => Array
(
[language] => PHP
[level] => 1
[https] => 20
)
[W] => Array
(
[language] => Java
[level] => 4
[https] => 98
)
[P] => Array
(
[language] => C#
[level] => 5
[https] => 39
)
)
*/