Keepwatch > Email alerts.', 'keepwatch' ); wp_mail( $to, $subject, implode( "\n", $lines ) ); } /** * Critical result IDs, sorted. * * @param array $groups Grouped results. * @return string[] */ public static function critical_ids( array $groups ): array { $ids = array(); foreach ( $groups as $results ) { foreach ( $results as $result ) { if ( Result::CRITICAL === $result->status ) { $ids[] = $result->id; } } } $ids = array_values( array_unique( $ids ) ); sort( $ids ); return $ids; } /** * Labels for selected IDs. * * @param array $groups Grouped results. * @param string[] $ids Result IDs. * @return string[] */ public static function labels_for_ids( array $groups, array $ids ): array { $wanted = array_fill_keys( $ids, true ); $labels = array(); foreach ( $groups as $results ) { foreach ( $results as $result ) { if ( isset( $wanted[ $result->id ] ) ) { $labels[] = $result->label; } } } return $labels; } }