Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,859 questions

51,780 answers

573 users

How to set specific column as index of multidimensional array in PHP

1 Answer

0 votes
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, null, '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
        )

)
 
*/

 



answered Jun 28, 2021 by avibootz
...