Skip to content

Instantly share code, notes, and snippets.

@stilliard
Last active December 11, 2015 13:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stilliard/4608102 to your computer and use it in GitHub Desktop.
Save stilliard/4608102 to your computer and use it in GitHub Desktop.
Multidimensional array function i seem to use on rare occasions, maybe someone knows a faster way?
<?php
/**
* Invert a multidimensional array
* @param array $origArray
* @return array
*/
function invertMultidimensionalArray($origArray) {
$invertedArray = array();
foreach ($origArray as $i => $sub) {
foreach ($sub as $key => $val) {
$invertedArray[$key][$i] = $val;
}
}
return $invertedArray;
}
@stilliard
Copy link
Author

<?php
//
// Test example, traffic stats
//
$testArray = array(
    array('direct' => 456, 'adwords' => 226, 'organic' => 301),
    array('direct' => 421, 'adwords' => 280, 'organic' => 300),
    array('direct' => 382, 'adwords' => 256, 'organic' => 314)
);
print_r( invertMultidimensionalArray($testArray) );
?>

Results in ->

Array
(
    [direct] => Array
        (
            [0] => 456
            [1] => 421
            [2] => 382
        )

    [adwords] => Array
        (
            [0] => 226
            [1] => 280
            [2] => 256
        )

    [organic] => Array
        (
            [0] => 301
            [1] => 300
            [2] => 314
        )

)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment