[PHP] Tester si un tableau est vide

Il est facile de tester si un tableau est complètement vide en PHP à l'aide de la fonction empty :

empty($tab)

En revanche, un tableau tel que [null] ne sera donc pas considéré comme vide par la fonction empty qui renverra false.


Fonction arrayEmpty

Le but de la fonction suivante est de tester si un tableau est vide (et si le tableau contient uniquement des valeurs nulles, il sera considéré comme vide également) :

function arrayEmpty($tab)
{
    // Si (apparemment) non vide => tester si au moins une valeur non nulle
    if (!empty($tab))
        foreach ($tab as $valeur)
            if ($valeur !== null)
                return false;
    
    return true;
}

Quelques exemples de valeurs retournées pas la fonction arrayEmpty :

$tab = [];
var_dump(arrayEmpty($tab)); // => true

$tab = [0];
var_dump(arrayEmpty($tab)); // => false

$tab = [null];
var_dump(arrayEmpty($tab)); // => true

$tab = [''];
var_dump(arrayEmpty($tab)); // => false

$tab = [false];
var_dump(arrayEmpty($tab)); // => false

$tab = ['test' => 0];
var_dump(arrayEmpty($tab)); // => false

$tab = ['test' => null];
var_dump(arrayEmpty($tab)); // => true