continue; } $distrib = array(); if ($scope === 'Condition') { $distrib[] = $users[$id['Name']][$id['Exp']]; } elseif ($scope === 'Experiment') { foreach ($users[$id['Name']] as $conditions) { $distrib[] = $conditions; } } foreach ($distrib as $dist) { foreach ($dist as $sessions) { foreach ($sessions as $targIds) { foreach ($targIds as $tid => $fileName) { if ($tid === $i) { continue; } if (!isset($IDs[$tid][$category])) { $IDs[$tid][$category] = $id[$category]; } elseif (getArrayDims($IDs[$tid][$category]) !== 2) { $IDs[$tid][$category] = array($IDs[$tid][$category], $id[$category]); } else { $IDs[$tid][$category][] = $id[$category]; } } } } } } } }
$IDs[$id]['Error Flags'] = $expFlags + $conFlags + $sesFlags + $idsFlags; } } } } } $categories = array_keys($extraFileMeta); foreach ($IDs as $i => $id) { foreach ($categories as $category) { if (!isset($extraFileMeta[$category]['files'])) { continue; } // if this file doesn't exist, no need to flag IDs that don't have this data if (!isset($id[$category])) { $IDs[$i]['Error Flags']['Missing ' . $category] = true; } elseif (getArrayDims($id[$category]) > 1) { $IDs[$i]['Error Flags']['Overlapping ' . $category] = true; } } } $userFlags = array(); $flagTypes = array(); foreach ($IDs as $i => $id) { foreach ($id['Error Flags'] as $flag => $true) { $userFlags[$id['Name']][$flag] = true; $flagTypes[$flag] = true; } } $images = array('Multiple Experiments' => 'E', 'Multiple Conditions' => 'C', 'Missing Sessions' => 'S', 'Multiple IDs' => 'I', 'Missing Demographics' => 'D2', 'Missing Final_Questions' => 'F2', 'Missing Instructions' => 'I2', 'Missing Status_Begin' => 'B2', 'Missing Status_End' => 'E2', 'Overlapping Demographics' => 'D1', 'Overlapping Final_Questions' => 'F1', 'Overlapping Instructions' => 'I1', 'Overlapping Status_Begin' => 'B1', 'Overlapping Status_End' => 'E1'); foreach ($images as $err => $code) { if (!isset($flagTypes[$err])) {
header("Content-Type: text/csv"); header("Content-Transfer-Encoding: binary"); arrayToEcho(array_keys($allColumns), $ext); } $path = $_PATH->output_dir; // $testHeader is set in scan.php, default 'Username' foreach ($users as $exps) { foreach ($exps as $conds) { foreach ($conds as $sessS) { foreach ($sessS as $ids) { foreach ($ids as $id => $fileName) { $output = array(); foreach ($extraFileMeta as $category => $fileMeta) { if (!isset($IDs[$id][$category])) { continue; } elseif (getArrayDims($IDs[$id][$category]) > 1) { $temp = array(); foreach ($IDs[$id][$category] as $data) { foreach ($data as $key => $value) { $temp[$key][] = $value; } } foreach ($temp as &$col) { $col = implode('|', $col); } unset($col); $output += AddPrefixToArray($fileMeta['Prefix'], $temp); } else { $output += AddPrefixToArray($fileMeta['Prefix'], $IDs[$id][$category]); } }