if ( isset( $paramset['all:info'] ) || isset( $paramset['info'] ) ) { // merge the two possibile calls together $infos = array_merge( isset( $paramset['all:info'] ) ? $paramset['all:info'] : array(), isset( $paramset['info'] ) ? $paramset['info'] : array() ); if ( is_array( $infos ) ) { $pi_count = 0; foreach($infos as $info_key => $info_value) { $pi_count++; $joins['info_' . $info_key] = " LEFT JOIN {postinfo} pi{$pi_count} ON {posts}.id = pi{$pi_count}.post_id AND pi{$pi_count}.name = ? AND pi{$pi_count}.value = ?"; $join_params[] = $info_key; $join_params[] = $info_value; $where[] = "pi{$pi_count}.name <> ''"; $select .= ", pi{$pi_count}.value AS info_{$info_key}_value"; } } }