= $this->extend('layouts/main') ?> = $this->section('content') ?> $x !== '')); } $s = trim((string) $v); if ($s === '') return []; // JSON 배열 문자열이면 decode if ($s[0] === '[') { $decoded = json_decode($s, true); if (json_last_error() === JSON_ERROR_NONE && is_array($decoded)) { return array_values(array_filter(array_map('trim', $decoded), fn($x) => $x !== '')); } } // 개행 기반 분리 $lines = preg_split("/\r\n|\r|\n/", $s); return array_values(array_filter(array_map('trim', $lines), fn($x) => $x !== '')); } /** * 상세 섹션 렌더 */ function render_detail_section(string $title, $value): string { $lines = normalize_lines($value); if (empty($lines)) return ''; $html = '
| 금리 | 월평균 상환액 | |
|---|---|---|
| 원리금 균등상환 | 원금 균등상환 | |
|
당월최저
= $d['min_rate'] ?>% |
= won(calcEqualPaymentMonthly(100000000, $d['min_rate'], 10)) ?>원 | = won(calcEqualPrincipalAvgMonthly(100000000, $d['min_rate'], 10)) ?> 원 |
|
당월최고
= $d['max_rate'] ?>% |
= won(calcEqualPaymentMonthly(100000000, $d['max_rate'], 10)) ?>원 | = won(calcEqualPrincipalAvgMonthly(100000000, $d['max_rate'], 10)) ?> 원 |
|
전월평균
= $d['avg_rate'] ?>% |
= won(calcEqualPaymentMonthly(100000000, $d['avg_rate'], 10)) ?>원 | = won(calcEqualPrincipalAvgMonthly(100000000, $d['avg_rate'], 10)) ?> 원 |