« Ritorna al blog

Ritorna alla lista completa degli articoli

Mettiti alla prova: esercizio semplice sugli array

PHP - SFIDE - settembre 30, 2021

Creare una funzione in PHP, denominata check_capacity(), che rispetti le seguenti funzionalità:

  1. La funzione deve manipolare o confrontare solo valori interi;
  2. Se il numero dei partecipanti è inferiore ai posti disponibili o alla capacità consentita la funzione dovrà restituire il messaggio: "Biglietti ancora disponibili";
  3. Se il numero dei partecipanti è uguale ai posti disponibili o alla capacità consentita la funzione dovrà restituire il messaggio: "L'evento è sold out";
  4. Se il numero dei partecipanti e maggiore ai posti disponibili o alla capacità consentita la funzione dovrà restituire il messaggio: "L'evento è sold out. Sono da rimborsare (refund) [x] biglietti";
  5. Stampare un riepilogo del risultato per ogni evento;

Note:

Ogni evento (event) racchiude le seguenti informazioni:

  • La capacità disponibile (capacity)
  • Numero di partecipanti (attendees)
// Array: key => [capacity, attendees];
    $events = array( 
        'Evento A' => [90, 20], 
        'Evento B' => [60, 60], 
        'Evento C' => [58, 200], 
        'Evento D' => [38, 200],
        'Evento E' => [4, 0],
    );

Il file iniziale in PHP è il seguente:

<?php
	// Verifica lo stato di un evento ed eventuali rimborsi.
	function check_capacity( $capacity, $attendees = 0 ) {
		// da completare
	}

	// Array di Dati <==> Array: key => [capacity, attendees];
	// capacity = capacità disponibile o posti a sedere
	// attendees = numero di partecipanti
	$events = array( 
		'Evento A' => [90, 20], 
		'Evento B' => [60, 60], 
		'Evento C'=> [58, 60], 
		'Evento D' => [38, 200],
		'Evento E' => [4, 0],
	);

	// Stampa il riepilogo
	foreach ( $events as $name => $numbers ) {
		// da completare
	}
?>

Si prega di completare le parti dove è scritto da completare rispettando il seguente output:

// Output
/*
    Evento A - Biglietti ancora diponibili.
    Evento B - L'evento è sold out.
    Evento C - L'evento è sold out. Da rimborsare 2 biglietti.
    Evento D - L'evento è sold out. Da rimborsare 162 biglietti.
    Evento E - Biglietti ancora diponibili.
*/

Per poter vedere la soluzione devi essere un utente registrato.

Soluzione all'esercizio:

<?php

    // Verifica lo stato di un evento ed eventuali rimborsi.
    function check_capacity( $capacity, $attendees = 0 ) {
        if ( $attendees < $capacity ) {
            return "Biglietti ancora diponibili.";
        } else if($attendees == $capacity){
            return "L'evento è sold out.";
        } else {
            $refund = $attendees - $capacity;
            return "L'evento è sold out. Da rimborsare $refund biglietti."; 
        }
    }

    // Array di Dati <==> Array: key => [capacity, attendees];
    // capacity = capacità disponibile o posti a sedere
    // attendees = numero di partecipanti
    $events = array( 
        'Evento A' => [90, 20], 
        'Evento B' => [60, 60], 
        'Evento C'=> [58, 60], 
        'Evento D' => [38, 200],
        'Evento E' => [4, 0],
    );

    // Stampa il riepilogo
    foreach ( $events as $name => $numbers ) {
        echo $name . ' - ' . check_capacity($numbers[0], $numbers[1]) . '<br/>';
    }

?>
Mettiti alla prova: esercizio semplice sugli array