if ( isset( $paramset['any:info'] ) ) { if ( is_array( $paramset['any:info'] ) ) { $pi_count = 0; $pi_where = array(); foreach ( $paramset['any:info'] as $info_key => $info_value ) { $pi_count++; $join_params[] = $info_key; if ( is_array($info_value) ) { $joins['any_info_' . $info_key] = " LEFT JOIN {postinfo} aipi{$pi_count} ON {posts}.id = aipi{$pi_count}.post_id AND aipi{$pi_count}.name = ? AND aipi{$pi_count}.value IN ?"; $join_params[] = '('.implode($info_value,',').')'; } else { $joins['any_info_' . $info_key] = " LEFT JOIN {postinfo} aipi{$pi_count} ON {posts}.id = aipi{$pi_count}.post_id AND aipi{$pi_count}.name = ? AND aipi{$pi_count}.value = ?"; $join_params[] = $info_value; } $pi_where[] = "aipi{$pi_count}.name <> ''"; $select_ary["info_{$info_key}_value"] = "aipi{$pi_count}.value AS info_{$info_key}_value"; } $where[] = '(' . implode(' OR ', $pi_where) . ')'; } }