public static function joinSubArraysOnKey($arrays, $depth = 1, $key = false) { if ($depth == 0 || !is_array($arrays)) { return $arrays; } // print_r($arrays); $retArr = array(); foreach ($arrays as $subKey => $subArray) { if ($key) { $retArr[$subKey] = array($key => Billrun_Util::joinSubArraysOnKey($subArray, $depth - 1, $subKey)); } else { $swappedArr = Billrun_Util::joinSubArraysOnKey($subArray, $depth - 1, $subKey); if (is_array($swappedArr)) { $retArr = array_merge_recursive($retArr, $swappedArr); } else { $retArr[$subKey] = $swappedArr; } } } return $retArr; }