/** * Given the aql array, append table names to strings in the clause aray if they are * missing * @param array $aql_array * @param array $clause_array */ public static function check_clause_array($aql_array, $clause_array) { $first = reset($aql_array); $clauses = aql2array::$clauses; $comparisons = aql2array::$comparisons; foreach ($clause_array as $k => $v) { if (in_array($k, $clauses)) { $clause_array = array($first['as'] => $clause_array); break; } } foreach ($clause_array as $table => $v) { if (!is_array($v)) { continue; } foreach ($v as $clause => $value) { if ($clause == 'where') { $value = is_array($value) ? $value : array($value); $arr = aql2array::prepare_where($value, $aql_array[$table]['table']); $clause_array[$table][$clause] = aql2array::check_where($arr, $aql_array[$table]['as']); } else { $value = is_array($value) ? $value : explodeOnComma($value); $clause_array[$table][$clause] = aql2array::check_clause($value, $aql_array[$table], $aql_array[$table]['fields']); } } } return $clause_array; }