Oggi sono state spiegate le principali funzioni PHP per la manipolazione degli array: array_combine per creare array associativi a partire da chiavi e valori, array_map per applicare una funzione a ogni elemento, array_reduce per ridurre un array a un unico valore, l'operatore spread (...) per unire più array, array_intersect per individuare i valori comuni, array_slice per estrarre una porzione senza modificare l'originale e array_splice per rimuovere una porzione modificando l'array originale. Gli esempi sono stati svolti con stampa dei risultati tramite print_r.

PHP - Lezione sulle funzioni degli array

<?php
    $output = "";

    $chiavi = ["nome", "cognome"];
    $valori = ["mario", "perna"];

    // nome => mario, cognome => perna

    $array_combinato = array_combine($chiavi, $valori);
    $output .= "<b>array_combine</b><br>";
    $output .= "Array combinato:<pre>" . print_r($array_combinato, true) . "</pre>";

    $output .= "Array chiavi:<pre>" . print_r($chiavi, true) . "</pre>";
    $output .= "Array valori:<pre>" . print_r($valori, true) . "</pre>";

    $output .= "<hr>";
    $prezzi = [10,20,30];
    $ar = array_map(fn($p) => 1.22*$p, $prezzi);
    $output .= "<b>array_map</b> (prezzi con IVA al 22%)<pre>" . print_r($ar, true) . "</pre>";

    $output .= "<hr>";
    // array_reduce
    $r = array_reduce($prezzi, fn($acc, $p) => $p + $acc, 0);
    $output .= "<b>array_reduce</b> (somma dei prezzi): " . $r . "<br>";

    $nomi4b = ["Aldo", "Giovanni", "Giacomo", "Francesca", "Sabrina"];
    $nomi5b = ["Mattia", "Simone", "Stefano", "Federica", "Sofia"];

    $output .= "<hr>";
    $elencoStudenti = [...$nomi4b,...$nomi5b];
    $output .= "<b>Operatore spread</b> (elenco 4B + 5B)<pre>" . print_r($elencoStudenti, true) . "</pre>";

    //array_intersect
    $n1 = ["Anna", "Luca", "Sara"];
    $n2 = ["Luca", "Sara", "Marco"];

    $nomi_comuni = array_intersect($n1,$n2);
    $output .= "<hr>";
    $output .= "<b>array_intersect</b> (nomi presenti in entrambi gli array)<pre>" . print_r($nomi_comuni, true) . "</pre>";

    $output .= "<hr>";
    $l = ["a","b","c","d","e"];
    $ris = array_slice($l, 1,3);
    $output .= "<b>array_slice</b> (3 elementi dalla posizione 1)<pre>" . print_r($ris, true) . "</pre>";

    $output .= "<hr>";
    $l2 = ["a","b","c","d","e"];
    $ris2 = array_slice($l2, -2);
    $output .= "<b>array_slice</b> (ultimi 2 elementi)<pre>" . print_r($ris2, true) . "</pre>";

    //array_splice()
    $output .= "<hr>";
    $l3 = ["a","b","c","d","e"];
    $ris3 = array_splice($l3,1,2);
    $output .= "<b>array_splice</b> (elementi rimossi)<pre>" . print_r($ris3, true) . "</pre>";
    $output .= "Array originale dopo lo splice:<pre>" . print_r($l3, true) . "</pre>";
?>
<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>Funzioni array PHP</title>
</head>
<body>
    <?php echo $output; ?>
</body>
</html>