&$row) { if (!isset($row['data']) || !is_array($row['data'])) { error_log("Routine paulshark: invalid row structure at index {$rowIndex}."); continue; } $valueD = trim((string)($row['data'][$columnDIndex] ?? '')); $valueE = trim((string)($row['data'][$columnEIndex] ?? '')); $valueJ = trim((string)($row['data'][$columnJIndex] ?? '')); /* * Merge values, ignoring empty values. */ $mergedValues = []; if ($valueD !== '') { $mergedValues[] = $valueD; } if ($valueE !== '') { $mergedValues[] = $valueE; } if ($valueJ !== '') { $mergedValues[] = $valueJ; } /* * Save final value into column D. */ $row['data'][$targetColumnIndex] = implode(' ', $mergedValues); error_log( "Routine paulshark: row " . ($row['excelrow'] ?? $rowIndex) . " generated value in column D: " . $row['data'][$targetColumnIndex] ); } unset($row); error_log("Routine paulshark completed."); }