SUPERCAT.DEV

Benvenut* sul mio blog

PHP

Funzioni array (parte 1)

22-08-2022

Le principali funzioni php con gli array

<?php

// https://www.php.net/manual/en/function.array.php


// -------ARRAY_MAP------
// array_map(?callable $callback, array $array, array ...$arrays): array
// esegue una funzione per ogni elemento

echo "---ARRAY_MAP---\n";

function echoFiori($nome)
{
    echo "$nome\n";
}

$fiori_nomi = ["margherita", "rosa", "orchidea", "geranio", "tulipano", "giglio"];
array_map('echoFiori', $fiori_nomi);

/*
margherita
rosa
orchidea
geranio
tulipano
giglio
*/

// Altro metodo
$echoFiori2 = function ($nome) {
    echo "$nome\n";
};

array_map($echoFiori2, $fiori_nomi);

// -------ARRAY_CHUNK------
// array_chunk(array $array, int $length, bool $preserve_keys = false): array
// taglia un array in pezzi

echo "---ARRAY_CHUNK---\n";

$posizioni = array('primo', 'secondo', 'terzo', 'quarto', 'quinto');
print_r(array_chunk($posizioni, 3));


/*
Array
(
    [0] => Array
        (
            [0] => primo
            [1] => secondo
            [2] => terzo
        )

    [1] => Array
        (
            [0] => quarto
            [1] => quinto
        )

)
*/

// -----ARRAY_COLUMN--------
// array_column(array $array, int|string|null $column_key, int|string|null $index_key = null): array
// ritorna tutte i dati di un array di una determinata colonna 
// (stessa chiave per ogni elemento)
echo "---ARRAY_COLUMN---\n";

$persone = [
    array(
        'id' => 1000,
        'nome' => 'Primo',
        'cognome' => 'Rossi',
    ),
    array(
        'id' => 1001,
        'nome' => 'Secondo',
        'cognome' => 'Verdi',
    ),
    array(
        'id' => 1002,
        'nome' => 'Terzo',
        'cognome' => 'Gialli',
    )
];

$persone_nomi = array_column($persone, 'nome');
print_r($persone_nomi);

/*
Array
(
    [0] => Primo
    [1] => Secondo
    [2] => Terzo
)
*/

// -----ARRAY_COMBINE-------
// array_combine(array $keys, array $values): array
// dati due array restituisce un array in cui usa il primo come chiave
// e il secondo come valore

echo "---ARRAY_COMBINE---\n";

$frutto = ['mela', 'banana', 'pera'];
$colore = ['rosso', 'giallo', 'verde'];
$risultato_combine = array_combine($frutto, $colore);

print_r($risultato_combine);

// -----ARRAY_COUNT_VALUES------
// array_count_values(array $array): array
// restituisce un array con chiave i valori differenti e come valore quante 
// volte sono presenti

echo "---ARRAY_COUNT_VALUES---\n";

$array_conta_valori_differenti = array(1, "rosa", 1, "rosa", "giallo");
print_r(array_count_values($array_conta_valori_differenti));

/*
Array
(
    [1] => 2
    [rosa] => 2
    [giallo] => 1
)
*/

// --------ARRAY_DIFF------
// array_diff(array $array, array ...$arrays): array
// ritorna un array con i valori presenti nel primo array ma non nel secondo 
// (le chiavi dell'array sono preservate)

echo "---ARRAY_DIFF---\n";

// chiavi       c1               0        1      2
$array1 = array("c1" => "verde", "rosso", "BLU", "rosso");
$array2 = array("c2" => "verde", "giallo", "rosso");
$result = array_diff($array1, $array2);

print_r($result);

/*
Array
(
    [1] => BLU
)
*/

// chiavi       0        1        2      3
$array1 = array("verde", "rosso", "BLU", "rosso");
$array2 = array("verde", "giallo", "rosso");
$result = array_diff($array1, $array2);

print_r($result);

/*
Array
(
    [2] => BLU
)
*/

// ------ARRAY_DIFF_KEY-------
// array_diff_key(array $array, array ...$arrays): array
// ritorna un array (chiave/valore) con le chiavi presenti solo nel primo array
// ma non nel secondo

echo "---ARRAY_DIFF_KEY---\n";

$array1 = array('blu' => 1, 'rosso' => 2, 'verde' => 3);
$array2 = array('blu' => 5,               'verde' => 7);

print_r(array_diff_key($array1, $array2));