/** * Flatten a value for display * * @param mixed $value * @return string */ private static function flattenValue($value, $human_labels = array()) { if (is_scalar($value)) { return $value; } // Merge an array or object down. Doesn't look great past 2 levels of depth. $is_assoc = is_array($value) && (bool) count(array_filter(array_keys($value), 'is_string')); if ($is_assoc || is_object($value)) { foreach ($value as $key => $val) { $value[$key] = PrettyFormatter::getHumanLabel($key, $human_labels) . ': ' . PrettyFormatter::flattenValue($val, $human_labels); } } $value = join(', ', (array) $value); return $value; }