function flatternArray(&$inputArray, $tmp = null, $name = '') { if ($tmp === null) { $tmp = $inputArray; } foreach ($tmp as $index => $value) { if (is_array($value)) { flatternArray($inputArray, $value, $name . '_' . $index); if (isset($inputArray[$index])) { unset($inputArray[$index]); } } else { $inputArray[$name . '_' . $index] = $value; //$inputArray[$index] = $value; } } foreach ($inputArray as $m => $n) { if (substr($m, 0, 1) == "_") { unset($inputArray[$m]); $inputArray[substr($m, 1)] = $n; } } return $inputArray; }
function generateTable(LogiksData $ld, $searchQ = "", $paramTags = array("border" => "1", "cellspacing" => "0", "cellpadding" => "0", "width" => "100%", "height" => "100%", "style" => ""), $titleCol = "title", $printHeader = true) { $html = ""; if ($paramTags !== null) { $html .= "<table " . parseTagParams($paramTags) . ">"; } if ($searchQ && is_string($searchQ) && strlen($searchQ) > 0) { $data = $ld->search($searchQ); } else { $data = $ld->dump(); } if ($printHeader && isset($data[0])) { $html .= "<thead><tr>"; foreach ($data[0] as $key => $value) { $html .= "<th class='{$key}' data-col='{$key}'>" . _ling($key) . "</th>"; } $html .= "</tr></thead>"; } if ($printHeader) { $html .= "<tbody>"; } foreach ($data as $key => $value) { if (is_array($value)) { $html .= "<tr data-key='{$key}'>"; foreach ($value as $a => $b) { if (is_array($b)) { $title = ""; if (is_array($titleCol)) { foreach ($titleCol as $nm) { if (isset($b[$nm])) { $title = $b[$nm]; break; } } } else { if (isset($b[$titleCol])) { $title = $b[$titleCol]; } } $bx = flatternArray($b); $bx = str_replace("%20", "_", http_build_query($bx, " ", " ", PHP_QUERY_RFC3986)); $html .= "<td class='{$a}' data-col='{$a}' {$bx}>" . _ling($title) . "</td>"; } else { $html .= "<td class='{$a}' data-col='{$a}'>" . _ling($b) . "</td>"; } } $html .= "</tr>"; } else { $html .= "<tr><td colspan=10000>"; $html .= _ling($value); $html .= "</td></tr>"; } } if ($printHeader) { $html .= "</tbody>"; } if ($paramTags !== null) { $html .= "</table>"; } return $html; }