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 print multiple columns from multidimensional key value array in PHP

2 Answers

0 votes
function array_columns($arr, $column_keys=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;
            }
            $result_arr[] = $tmp;
        }
    }
    return $result_arr;
}


$arr = array(
    array('language'=>'JavaScript', 'code'=>1298, 'level'=>2, "spec"=> 'Z'),
    array('language'=>'PHP', 'code'=>9814, 'level'=>1, "spec"=> 'X'),
    array('language'=>'Java', 'code'=>5621, 'level'=>4, "spec"=> 'W'),
    array('language'=>'C#', 'code'=>1111, 'level'=>5, "spec"=> 'P'),
);
 
$result_arr = array_columns($arr, 'language,level,spec');

print_r($result_arr);





/*
run:
    
Array
(
    [0] => Array
        (
            [language] => JavaScript
            [level] => 2
            [spec] => Z
        )

    [1] => Array
        (
            [language] => PHP
            [level] => 1
            [spec] => X
        )

    [2] => Array
        (
            [language] => Java
            [level] => 4
            [spec] => W
        )

    [3] => Array
        (
            [language] => C#
            [level] => 5
            [spec] => P
        )

)

*/

 



answered Sep 21, 2019 by avibootz
edited Jun 28, 2021 by avibootz
0 votes
function array_columns($arr, $column_keys=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;
            }
            $result_arr[] = $tmp;
        }
    }
    return $result_arr;
}


$arr = array(
    array('language'=>'JavaScript', 'code'=>1298, 'level'=>2, "spec"=> 'Z'),
    array('language'=>'PHP', 'code'=>9814, 'level'=>1, "spec"=> 'X'),
    array('language'=>'Java', 'code'=>5621, 'level'=>4, "spec"=> 'W'),
    array('language'=>'C#', 'code'=>1111, 'level'=>5, "spec"=> 'P'),
);
 
$result_arr = array_columns($arr, 'language,level,spec');

foreach ($result_arr as $key_row => $row) {
    foreach ($row as $key => $val) {
         echo $key . " " . $val . " - ";
    }
    echo "\n";
}




/*
run:
    
language JavaScript - level 2 - spec Z - 
language PHP - level 1 - spec X - 
language Java - level 4 - spec W - 
language C# - level 5 - spec P - 

*/

 



answered Sep 21, 2019 by avibootz
edited Jun 28, 2021 by avibootz

Related questions

...