function flattenParts($messageParts, $flattenedParts = array(), $prefix = '', $index = 1, $fullPrefix = true) { if (!empty($messageParts)) { foreach ($messageParts as $part) { $flattenedParts[$prefix . $index] = $part; if (isset($part->parts)) { if ($part->type == 2) { $flattenedParts = imapRoutine::flattenParts($part->parts, $flattenedParts, $prefix . $index . '.', 0, false); } elseif ($fullPrefix) { $flattenedParts = imapRoutine::flattenParts($part->parts, $flattenedParts, $prefix . $index . '.'); } else { $flattenedParts = imapRoutine::flattenParts($part->parts, $flattenedParts, $prefix); } unset($flattenedParts[$prefix . $index]->parts); } $index++; } } return $flattenedParts; }