public function GetStoryCorrelationSummary($sid, $tableName) { $datasetDAO = new DatasetDAO(); //TODO: get cids of all column in the table by sid and tableName $columns = $datasetDAO->getTableColumns($sid, $tableName); $result = array(); $oneRow = array(); $row = 0; $keys = array_keys($columns); $values = array_values($columns); for ($i = 0; $i < sizeof($keys); $i++) { $queryEngine = new QueryEngine(); $inputObj = new stdClass(); $inputObj->sid = $sid; $cidi = $keys[$i]; $columnNamei = $values[$i]; $cidiType = $this->statisticsDAO->GetColumnType($cidi); $oneRow["statistics"] = "Correlation " . $columnNamei; for ($j = 0; $j < sizeof($keys); $j++) { $cidj = $keys[$j]; $columnNamej = $values[$j]; $cidjType = $this->statisticsDAO->GetColumnType($cidj); if (strtoupper($cidiType) == "NUMBER" && strtoupper($cidjType) == "NUMBER") { $select = "SELECT ROUND(CORR({$values[$i]}, {$values[$j]}),2) AS 'Correlation' "; $from = (object) array('sid' => $sid, 'tableName' => "[{$tableName}]"); $fromArray = array($from); $obj = $queryEngine->doQuery($select, $fromArray, null, null, null, null, null); $oneRow[$columnNamej] = $obj[0]["Correlation"]; //$oneRow[$columnNamej] = "--"; } else { $oneRow[$columnNamej] = "--"; //continue; } } $result[$row] = $oneRow; $row++; } $columns = NULL; foreach ($result as $r) { $json_array["data"][] = $r; if ($columns === NULL) { if (is_array($r)) { $columns = implode(",", array_keys($r)); } else { $columns = implode(",", array_keys(get_object_vars($r))); } } } $json_array["Control"]["cols"] = $columns; return $json_array; }